使用php在csv文件中包含单词“noreply@118-bonsplans.com”和“fail”的计数行

时间:2012-08-27 06:55:40

标签: php cakephp cakephp-1.3 cakephp-2.0

我有acct-2012-08-24-0001.csv文件如下:

noreply@118-bonsplans.com   toulouse@texa.fr    relayed
noreply@lemeilleur-duweb.com  g.dupond@libertysurf.fr   failed
noreply@118-bonsplans.com   toulouse@texa.fr    failed
noreply@lemeilleur-duweb.com  g.dupond@libertysurf.fr   relayed

我想在csv文件中只计算noreply@118-bonsplans.com toulouse@texa.fr failed,但我不知道如何计算它。任何人都知道请帮助我,谢谢。

3 个答案:

答案 0 :(得分:1)

我不确定,但这可能适合你。

count(preg_grep("/noreply@lemeilleur-duweb.com  g.dupond@libertysurf.fr   relayed/", file("acct-2012-08-24-0001.csv")));

您还可以使用AND中的if block条件逐个单元格检查。

答案 1 :(得分:1)

使用preg_match_all()

$match = preg_match_all('/noreply@118-bonsplans.com(\s+)toulouse@texa.fr(\s+)failed/i', $csv, $matches);
echo count($matches[0]);

答案 2 :(得分:0)

这是一个简单的方法......     

$fp = fopen('acct-2012-08-24-0001.csv');

$count = 0;

while ($row = fgetcsv($fp)) {
    if (
        $row[0] == 'noreply@118-bonsplans.com'
        && $row[1] == 'toulouse@texa.fr'
        && $row[2] == 'failed'
    ) {
       $count++;
    }
}

echo "$count matches found";

?>