2014-02-28 17 views
0

我已經創建了一個用戶輸入數字的表單,然後使用fwrite將這些數據寫入文本文件。發送一個文本文件來計算名稱值的數量 - PHP

現在的問題是,有沒有辦法閱讀在一定意義上的文件,但只有在一定的帖子..再算上了許多這類的如何時有發生,例如...

$data = sprintf("((%s,%s,%s))$s", 
    $_POST['shapeType'], 
    $_POST['circleRadius'], 
    $_POST['circleColour'], 
    PHP_EOL); // automatically use the Operating System appropriate new line character sequence. 
fwrite($handle, $data); } 
fclose($handle); 
?> 

上面是fwrite,現在'shapeType'是在這個特定的寫道上的圓圈,有沒有找到所有shapeType帖子(其他形狀如方形等)的方法,因此產生一個

存在x個Shapes數量網站。

x顯然取代了計數的金額,有什麼想法?即時通訊相當新,所以可能完全不可能。

更新! - 看起來什麼文本文件一樣

((圓,120,紅色))((三角,190,120,90,藍))

((圓,90,藍))((圓,20,紅))

回答

0

您可以將文件的每一行讀入數組,然後遍歷該數組。在查看每一行時,只需檢查它是否匹配'circle'或其他內容,如果是,則增加一個計數器。

<?php 

$shape_type = $_POST['shapeType']; 
$shape_counter = 0; 

$lines = file($file_name); 

foreach ($lines AS $line) { 
    if (preg_match('/'.$shape_type.'/', $line)) { 
     $shape_counter++; 
    } 
} 

print "There are ".$shape_counter." amount of ".$shape_type."s stored within the site."; 

編輯:

如果你只是想獲得行的總數,那就更簡單了。只要這樣做:

<?php 

$lines = file($file_name); 

print "There are ".count($lines)." amount of shapes stored within the site."; 
+0

是否有任何理由得到3而不是5存儲?...你說的shape_type我只是想所有shapeType被認爲是相同的。所以它的形狀(但它的統計所有的圓形,三角形,正方形等),如果這是有道理的 – user3365872

+0

只有一種形狀增加計數器,另一個沒有,任何想法? – user3365872

+0

哦,所以你只需要計算幾行?將文件讀入數組後,只需執行以下操作:'$ line_count = count($ lines); print $ line_count;' – Quixrick

相關問題