Как отфильтровать вход из файла?(PHP) - PullRequest
2 голосов
/ 19 февраля 2012

Прежде всего, я новичок в мире PHP .. так что будет очень признателен, если я найду то, что мне нужно здесь.заранее большое спасибо.

У меня есть входной файл с несколькими строками, в каждой строке есть имена людей и места их проживания (имена и места разделены касанием (оно может отображаться не совсем внизу)).как в этом примере:

  • JhonWilliam NewYork
  • KhanFayre Bangalore
  • LuiseRamsy NewYork

, поэтому я хотел написать функцию 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");


?>

мой вопрос .. Как я могу написать функцию для фильтрации текста во входном файле?потому что я хочу печатать только людей, которые живут в Нью-Йорке

Ответы [ 2 ]

0 голосов
/ 19 февраля 2012
      $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);

      }
0 голосов
/ 19 февраля 2012

Вы можете использовать strpos , чтобы узнать, содержит ли строка другую строку.

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

И

echo process_line(trim($buffer), 'NewYork');
...