2012-12-26 18 views
1

我現在有一個文本文件,它看起來像這樣:如何將文本文件中的數字與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: 

我想要做什麼,是添加所有的數字在第二列在一起。我怎樣才能用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: 

*我想補充什麼。

任何幫助將不勝感激!謝謝!

+0

你嘗試過什麼? PHP是你唯一的選擇?這對於bash/core utils來說很簡單 –

回答

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); 
} 

?> 
+0

不幸的是,它沒有奏效。 – user1930449

+0

對不起,這是我的網站上的一個錯誤,它的作用就像一個魅力! – user1930449

1

PHP:

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

如果文件過大,使用fopen + fgets,而不是file

BASH:

cut -d' ' -f3 filename | paste -sd+ | bc 
+0

它沒有用,它只顯示了很多零。我只是迴應$ sum? – user1930449

+0

@ user1930449已更新;你不需要'each',對不起。 –

相關問題