【发布时间】:2013-11-04 01:57:04
【问题描述】:
我有一个应用程序需要打开文件,然后在其中找到字符串,并打印找到字符串的行号。
例如,文件 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 行找到了字符串......这是不正确的......
最终申请比这复杂得多... 找到行号后,它应该替换其他字符串,并将更改保存到文件中,然后进行进一步处理....
提前致谢:)
【问题讨论】:
-
你可能的尝试?
-
我刚刚添加了我的最后一次尝试。谢谢你提醒我。
-
您自己的尝试不起作用的原因是因为 strpos 在找不到针时返回 false,这将使您的 if 语句评估为 true。您必须写
!== false才能使这样的声明生效。 -
@Daniel Perván - 我刚试过,是的,现在可以了。谢谢!
标签: php string numbers find line