我有这个TXT文件,我将每行插入到数组中,如下所示:
数组([0] => [1] => 8100 [2] => 623 [3] => 09:04 [4] => AM [5] => 00:26 [6] => L [7] => S-ED [8] => 768 [9] =>#4506856439 [10] => 00:01 [11] =>)
CO USER TIME DURATION TYPE ACCOUNT_CODE CALLED_NUM RING_TIME
8100 623 09:04 AM 00:26 L S-E 250821613987
8021 8816 09:06 AM 00:20 I S-E D 768 #4506856439 00:01
8020 09:06 AM I N D 603 #45424044499 00:30
8011 09:07 AM 00:11 I S-E D 727 #7546355292 00:02
" 8817 00:11
" 00:02 H
8100 623 09:07 AM 00:01 L S-E 5542204034
8007 8818 09:08 AM 00:13 I S-E D 618 #45269021726 00:01
8013 8811 09:09 AM 00:01 I S-E D 770 #436217227 00:01
8014 09:10 AM 00:16 I S-E D 652 #4523859922 00:01
我想将它插入一个包含所有参数的数组中,即使是空的,也是如此 但我无法让它发挥作用。
我试过了:
$fh = fopen('captures/131210.txt','r');
while ($line = fgets($fh)) {
$tempexp = preg_split('/\s+/', $line);
print_r($tempexp);
echo "<br />";
}
fclose($fh)
但它为某些值提供了奇怪的输出,例如:
数组([0] =&gt; [1] =&gt;“[2] =&gt; 8812 [3] =&gt; 00:16 [4] =&gt;)
非常感谢帮助!
答案 0 :(得分:1)
如果文本文件的布局完全基于空格,则可以使用确切的列来提取数据。由于列的宽度不同,因此不能简单地将其写入一个循环中。
使用substr函数获取部分行(第一个数字是索引,第二个数字是读取的长度)
$fh = fopen('captures/131210.txt','r');
while ($line = fgets($fh)) {
$co = substr($line, 0, 7);
$user = substr($line, 7, 6);
... etc ...
echo "<br />";
}
fclose($fh)
您可能需要根据内容以及您要对其执行的操作进一步解析单独的部分 - 解析为整数,日期,时间等。