1

現在、次のようなテキストファイルがあります。

Test1 = 120827 = December 23, 2012:
Test2 = 147203 = December 23, 2012:
Test3 = 11806 = December 23, 2012:
Test4 = 11806 = December 23, 2012:
Test5 = 0 = December 23, 2012:

私がやりたいのは、2番目の列のすべての数値をすべて足し合わせることです。PHPでこれを行うにはどうすればよいですか?私の実際のファイルはこれよりはるかに大きいです。

Test1 = *120827 = December 23, 2012:
Test2 = *147203 = December 23, 2012:
Test3 = *11806 = December 23, 2012:
Test4 = *11806 = December 23, 2012:
Test5 = *0 = December 23, 2012:

*追加したいもの。

どんな助けでも大歓迎です!ありがとう!

4

2 に答える 2

1

PHP:

$sum = 0;
foreach (file($filename) as $line) {
   list(,,$num) = explode(' ', $line);
   $sum += $num;
}

ファイルが大きすぎる場合は、。の代わりにfopen+を使用してください。fgetsfile

BASH:

cut -d' ' -f3 filename | paste -sd+ | bc
于 2012-12-26T18:43:21.440 に答える
0
<?php
$pattern = '/(?<=\=\s)([0-9]+)(?=\s\=)/';
$total = 0;
$matches;
$filename = "add.txt";
$handle = @fopen($filename, "r");

if ($handle) {
    while (($buffer = fgets($handle, 4096)) !== false) {        
        if(preg_match($pattern, $buffer, $matches))
        {
            $total += intval($matches[0]);  
        }       
    }
    if (!feof($handle)) {
        echo "Error: unexpected fgets() fail\n";
    }
    fclose($handle);
}

?>
于 2012-12-26T18:58:32.913 に答える