Нужно получить номер строки в строке соответствия текстовому файлу

Мне нужно получить номер строки текстового файла с помощью PHP. Мне нужна строка «ХОТИТЕ ЭТУ ЛИНИЮ».

Я попытался использовать файл (), чтобы поместить строки файла в массив и выполнить поиск с помощью array_search (), но он не вернет номер строки. В этом примере мне нужно будет вернуть 3 в качестве номера строки.

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

Текстовый файл:

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

Related of "Нужно получить номер строки в строке соответствия текстовому файлу"

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

Это должно быть более эффективным с точки зрения памяти, чем загрузка файла в массив

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

Если вы просто хотите найти части слова, замените

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

с

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