我正在尝试从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;
}
为什么不返回所有匹配的行?
答案 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
。