PHP - 如何将文本文件中的 explode() 行分解到数组中


PHP - How to explode() lines from text file in to an array?

这就是我要做的:

  • 我有一个名为 member 的文本文件.log
  • 加上每个成员的未付款总额-210.00等,例如:非活动 : [2007-04-01 08:42:21] "主页/俱乐部/会员" 210.00 "R-200"

  • 对我来说,这似乎使我需要分离记录的不同部分,以便我可以定位对应于金额 210.00 等的 [键]

  • 我想用 explode() 来做到这一点,但由于我没有将字符串传递给 explode(),我收到一个错误:警告:explode() 期望参数 2 是字符串,数组在第 25 行的/home/mauri210/public_html/lfctribe.com/index.php 中给出

如何解决此问题,以便将每行的总计相加?

这是我的 php:

<?php
//Open the dir 
$dirhandle = opendir('/home/mauri210/public_html/lfctribe.com/data');
//Open file 
$file = fopen('/home/mauri210/public_html/lfctribe.com/data/members.log', 'r');
//Declare array 
$arrFile = array();
//Add each line of file in to array while not EOF 
while (!feof($file)) {
    $arrFile[] = fgets($file);
    //explode 
    $exarrFile = explode(' ', $arrFile);
}
var_dump($exarrFile);
?>

以下是成员的内容.log :

inactive : [2007-04-01 08:42:21] "home/club/member" 210.00 "r-200"
inactive : [2008-08-01 05:02:20] "home/club/staff" 25.00 "r-200"
active : [2010-08-11 10:12:20] "home/club/member" 210.00 "r-500"
inactive : [2010-01-02 11:12:33] "home/premier/member" 250.00 "r-200"
active : [2013-03-04 10:02:30] "home/premier/member" 250.00 "r-800"
active : [2011-09-14 15:02:55] "home/premier/member" 250.00 "r-100"
    while (!feof($file)) {
        $arr_file = fgets($file);
        $arrFile[] = fgets($file);
        //explode 
        $exarrFile = explode(' ', $arr_file);
    }
var_dump($exarrFile);

试试这样的事情

  $sum=0;
  foreach(file("path/to/file") as $line )
  {
      $fields=explode (" ", $line);
      $sum += $fields[count($fields)-1];
   }
      echo $sum;

我想你会需要这个

$items= preg_split('/[,'s]+/', $yourline);
我想

我已经解决了这个问题。我已经用少量样本数据进行了测试,似乎可以工作。这是我更新的代码:

    <?php

//Open the dir 
    $dirhandle = opendir('/home/mauri210/public_html/lfctribe.com/data');
//Open file 
    $file = fopen('/home/mauri210/public_html/lfctribe.com/data/members.log', 'r');
//List contents of file 
    while (($contents = fgets($file)) !== false) {
    $parts = explode(" ", $contents);
    $total = $total + $parts[5];
    }
    var_dump($parts);
    echo "this is key 5 $total";
?>