让我们一起爱米兰
站内搜搜:
移动设备
请扫描二维码
或访问
m.milan100.com
您所在的位置 -> 米兰百分百 -> PHP -> PHP 依固定长度切割字串(unpack)

PHP 依固定长度切割字串(unpack)

点击数:1337 发表时间:2011-12-13 16:15:56 作者: 来源链接:
分享到:
分享到微信

切割字串通常都是有某些特殊分隔用 split 来分隔, 而另外一种是固定长度的切割法, 就是第一栏长度是 20, 第二栏长度是 15 .. 等, 遇到这种可以使用 unpack 来切割.

简单范例
下述范例 $str 里面第一栏的长度是 10, 第二栏是 10, 第三栏是 9, 第四栏是 8 (算法是由字串开始算到最后面空白结束), 那 unpack 用法就如下述范例:
<?php
$str = '12/01/08 00:22:33 112233 12342222';
print_r(unpack('a10date/a10time/a9phone/a8tel', $str));
?>
输出结果:
Array
(
[date] => 12/01/08
[time] => 00:22:33
[phone] => 112233
[tel] => 12342222
)
unpack 里面的第一栏 format 格式, 上述用的都是 a NUL-padded string (详细格式可见: pack), "/" 是分隔下一栏用, 所以格式写起来是 "10个字 指定给 date 的变量 / 10个字 指定给 time 的变量 ... 等", 而因为是固定字串, 所以这些资料印出来的后面, 有可能会有空白, 可以再用 trim 去掉.
范例: 读档再切割
范例2: (读档再切割)
<?php
$handle = fopen("unpack.txt", "r");
while (!feof($handle)) {
$t = unpack("a10date/a10time/a9phone/a8tel", fgets($handle));
$date = trim($t['date']);
$time = trim($t['time']);
$phone = trim($t['phone']);
$tel = trim($t['tel']);
// todo something.
}
fclose($handle);
?>
0
很 好
0
一 般
0
差 劲
热门新闻
相关文章
上一篇: PHP socket 编程中的超时设置
下一篇: php发送邮件类
评论区
匿名

返回首页 | 收藏本页 | 回到顶部
Copyright 2010. 米兰百分百 Powered By Bridge.
京ICP备15050557号