按空格插入数组


Insert into array by spaces

我有一个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]=>[1]=>"[2]=>8812[3]=>00:16[4]=>)

非常感谢您的帮助!

如果文本文件的布局完全基于空格,则可以使用精确的列来提取数据。由于列的宽度不相等,所以不能简单地将其写入一个循环中。

使用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)

您可能需要根据内容和您想对其做什么来进一步解析单独的部分-解析为整数、日期、时间等。