这就是我要做的:
- 我有一个名为 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";
?>