我有一個應用程序需要打開文件,然後找到它的字符串,並打印一個行號找到字符串。PHP - 查找文件中的字符串,然後顯示它的行號
例如,文件example.txt中包含幾個哈希:
APLF2J51 1a79a4d60de6718e8e5b326e338ae533
EEQJE2YX 66b375b08fc869632935c9e6a9c7f8da O87IGF8R
c458fb5edb84c54f4dc42804622aa0c5 APLF2J51
B7TSW1ZE 1e9eea56686511e9052e6578b56ae018
EEQJE2YX affb23b07576b88d1e9fea50719fb3b7
所以,我希望PHP搜索「1e9eea56686511e9052e6578b56ae018」,並打印出它的行號,在這種情況下,4
請注意,有不會在文件中的多個哈希值。
我在互聯網上發現了一些代碼,但似乎沒有工作。
我這個嘗試之一:
<?PHP
$string = "1e9eea56686511e9052e6578b56ae018";
$data = file_get_contents("example.txt");
$data = explode("\n", $data);
for ($line = 0; $line < count($data); $line++) {
if (strpos($data[$line], $string) >= 0) {
die("String $string found at line number: $line");
}
}
?>
它只是說該字符串在行0 ....這是不正確的發現....
最終應用比這複雜得多... 它開創行號後,就應更換串別的東西,並更改保存到文件中,然後繼續進一步處理....
感謝提前:)
而且你可以嘗試? –
我剛剛添加了我的最後一次嘗試。謝謝你提醒我。 – xZero
你自己的嘗試不起作用的原因是,當找不到針時,strpos會返回錯誤,這會使你的if語句評估爲真。您必須編寫'!== false'來使這樣的語句有效。 –