查找包含给定单词并在数组中返回的行

时间:2016-05-20 17:23:03

标签: php

假设我有以下几行:

How, are you!
Are you there?
Yes, you over there.

我必须显示包含word"那里"的那些行,在我的情况下它应该返回以下字符串数组:

["Are you there?", "Yes, you over there."]

我做的是:

$arr = array();
        while (!feof($file)) {
            $line = fgets($file);
            if (strpos($line, $keyword) !== false) {
                $arr[]=$line;
            }
        }
        print_r($arr);
        return;

如何以["Are you there?", "Yes, you over there."]格式获得结果。

2 个答案:

答案 0 :(得分:0)

这是一个快速的方法:

$result = preg_grep("/$keyword/", file("/path/to/file.txt"));
  • file()创建每行的数组
  • grep over the data for the keyword

如果你想要那个文字字符串,那就是JSON:

$string = json_encode($result);

答案 1 :(得分:0)

正则表达式?

 preg_match_all("/.* there .*|there .*|.* there.*/", $input_str, $output_array);

您可以将“there”替换为变量。

http://www.phpliveregex.com/p/fLn