Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Need to get line number in text file matching string

Tags:

php

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
like image 227
SomeRandomDude Avatar asked Nov 18 '25 00:11

SomeRandomDude


1 Answers

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";
}
like image 129
Mark Baker Avatar answered Nov 20 '25 14:11

Mark Baker



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!