需要在文本文件匹配字符串中获取行号

Som*_*ude 3 php

我需要使用PHP获取文本文件的行号.我需要的是"想要这条线".

我尝试使用file()将文件行放在一个数组中并使用array_search()进行搜索,但它不会返回行号.在这个例子中,我需要返回3作为行号.

$file = file("file.txt");
$key = array_search("WANT", $file);
echo $key;
Run Code Online (Sandbox Code Playgroud)

文本文件:

First Line of Code
Some Other Line
WANT THIS LINE
Last Line
Run Code Online (Sandbox Code Playgroud)

Mar*_*ker 5

array_search()正在寻找完全匹配.您需要遍历数组条目以查找部分匹配

$key = 'WANT';
$found = false;
foreach ($file as $lineNumber => $line) {
    if (strpos($line,$key) !== false) {
       $found = true;
       $lineNumber++;
       break;
    }
}
if ($found) {
   echo "Found at line $lineNumber";
}
Run Code Online (Sandbox Code Playgroud)