PHP函数从文件中获取所有匹配的行

时间:2013-01-24 14:12:22

标签: php file search

我正在尝试从html文件中搜索多个匹配的行并返回这些行。

如果有单一匹配则可行。但如果有多个匹配则不返回任何内容。

以下是代码:

$line = getLineFromFile("abc.html", 'http://www.abc.com/');

echo $line;

function getLineFromFile($file, $string) {
    $lines = file($file);
    foreach($lines as $lineNumber => $line) {
        if(strpos($line, $string) !== false){
            return $lines[$lineNumber];
        }
    }
    return false;
}

为什么不返回所有匹配的行?

1 个答案:

答案 0 :(得分:3)

从函数返回函数调用停止执行后。您需要将结果存储在一个数组中,然后将其返回。

function getLineFromFile($file, $string) {
    $lines = file($file);
    $matches = array();
    foreach($lines as $lineNumber => $line) {
        if(strpos($line, $string) !== false){
            $matches[] = $lines[$lineNumber];
        }
    }
    return $matches;
}

确认在检查此功能的结果时检查是否为空数组而不是false