Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP函数从文件中获取所有匹配的行_Php_File_Search - Fatal编程技术网

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

PHP函数从文件中获取所有匹配的行,php,file,search,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 =>

我试图从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;
}

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

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

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

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

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

它非常有效!只是我不得不让那个阵列内爆。非常感谢!它工作得很好!只是我不得不让那个阵列内爆。非常感谢!