2012-02-19 40 views
2

首先,我是PHP世界的新手......所以如果我在這裏找到所需的東西,我將非常感激。提前謝謝了。如何過濾來自文件的輸入? (PHP)

我有一個多行輸入文件,每行都有一些人名和他們居住的地方(名稱和地點由水龍頭分開(它可能不會完全顯示在下面))。就像這個例子:

  • JhonWilliam紐約
  • KhanFayre班加羅爾
  • LuiseRamsy紐約

,所以我想寫一個PHP函數來逐行讀取該文件系和只有打印(輸出到另一個文件)住在紐約的人

我寫了這個函數來逐行讀取文件

function process_file($input) 

{ 

    $handle = @fopen("input.txt", "r"); 

    if ($handle) { 

    while (($buffer = fgets($handle, 4096)) !== false) { 

     echo process_line(trim($buffer)); 

    } 

    fclose($handle); 

    } 

} 


process_file("input.txt"); 


?> 

我的問題是...... 如何編寫一個函數來過濾輸入文件中的文本?因爲我只想打印住紐約市的人

+0

你爲什麼不只是添加其他參數的函數'功能process_file($輸入,$位置= '紐約')' – 2012-02-19 08:08:30

+0

你有沒有考慮保持數據庫中的「input.txt」中的數據而不是平面文件?這會使你所描述的非常簡單。 – dqhendricks 2012-02-19 08:20:08

+0

fgetcsv()是讀取製表符分隔文件的有用函數函數 – 2012-02-19 09:26:11

回答

0

您可以使用strpos來查明一個字符串是否包含另一個字符串。

function process_line($str, $findme) { 
    if (strpos($str, $findme) !== false) { 
     return $str; 
    } 
} 

而且

echo process_line(trim($buffer), 'NewYork'); 
0
 $handle = @fopen("input.txt", "r"); 

     if ($handle) { 

     while (($buffer = fgets($handle, 4096)) !== false) { 

      $n = explode('\t',$buffer) // $n[0] = name, $n[1] = city 
      if ($n[1] == "NewYork") { 
      echo $n[0] . "\n"; 
      } 
     } 

     fclose($handle); 

     } 
相關問題