假设我有一个大文件。该文件是一个 IP 列表,每个 IP 都在一个新行中,如下所示:
123.123.123.123
123.123.123.124
123.123.123.125
etc...
我可以这样做:
$file = file_get_contents($src);
if (substr_count($file,'myip'))
echo 'FOUND';
或者数组样式的类似方式:
$file = file($src,FILE_IGNORE_NEW_LINES);
if (in_array('myip',$file))
echo 'FOUND';
但我认为有第三种可能更快的替代方案。
逐行解析文件,如果找到字符串,当然会停止读取。
像这样:
$file = fopen($src,'r');
while(!feof($file)) {
$ip = fgets($file);
if ($ip == $myIP) {
die('Found');
}
}
fclose($file);
我的问题是:您认为还有其他更好的方法吗?
在性能方面,您认为哪种代码更快?
非常感谢各位
最佳答案
关于php - 查看文件中是否找到字符串的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6018398/