使用php使用数组读取文件匹配行

时间:2012-10-02 07:40:31

标签: php

我希望能够通读纯文本文件并匹配多行,而无需多次遍历文本文件。我传入一个数组,其中包含我想要匹配的字符串列表,理想情况下,我想将其放入数组中。

我可以使用下面的代码实现所需的结果,但需要多次读取文本文件。

function readFile($line){
  $contents = file("test.txt");

  if(preg_match("/$line*/i", $val)){
    return($val);
  }
}

理想情况下,我想执行以下操作:

// pass an array to the funciton which will parse the file once and match on the elements defined.
$v = readFile(array("test_1", "test_2", "test_2", "test_3"));

// return an array with the matched elements from the search.
print_r($v);

非常感谢任何帮助。

全部谢谢!

2 个答案:

答案 0 :(得分:1)

$val = array();
foreach ($contents as $file) {
   foreach ($line as $l) {
      if (stristr($file, $l)) {
         $val[] = $file;
         break; // Don't need to check the other $line values
      }
   }
}

答案 1 :(得分:0)

$val = array();
foreach ($contents as $file) {
   foreach ($line as $l) {
      if (stristr($file, $l) {
         $val[] = $file;
      }
   }
}

即使你想坚持preg_match,也不需要“*”。