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

I need to get the line number of a text file using PHP. The line I need is "WANT THIS LINE".

I tried using file() to put the file lines in an array and search using array_search() but it won't return the line number. In this example I would need to return 3 as the line number.

$file = file("file.txt");
$key = array_search("WANT", $file);
echo $key;

Text File:

First Line of Code
Some Other Line
WANT THIS LINE
Last Line

array_search() is looking for an exact match. You'll need to loop through the array entries looking for a partial match

$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";
}

This should be more memory efficient than loading the file into an array

foreach (new SplFileObject('filename.txt') as $lineNumber => $lineContent) {
    if(trim($lineContent) === 'WANT THIS LINE') {
        echo $lineNumber; // zero-based
        break;
    }
}

If you just want to search for parts of a word, replace

if(trim($lineContent) === 'WANT THIS LINE') {

with

if (FALSE !== strpos($lineContent, 'WANT')) {