在函数中逐行读取.txt文件-优化PHP脚本以获得更好的性能

在函数中逐行读取.txt文件-优化PHP脚本以获得更好的性能,php,performance,fopen,file-get-contents,fgets,Php,Performance,Fopen,File Get Contents,Fgets,我正在优化一个php脚本以提高性能。php脚本逐行读取75个文本文件,并检查字符串中是否存在一行,然后执行rest 它是一个HTTP API脚本,每秒调用1000次 我正在api.php脚本中创建一个函数来实现这一点 function searchFile($data, $path) { $result=false; if(file_exists($path)) { $data_array= explode("\n", file_get_contents

我正在优化一个php脚本以提高性能。php脚本逐行读取75个文本文件,并检查字符串中是否存在一行,然后执行rest

它是一个HTTP API脚本,每秒调用1000次

我正在api.php脚本中创建一个函数来实现这一点

function searchFile($data, $path)
{
    $result=false;

    if(file_exists($path))
    {
        $data_array= explode("\n", file_get_contents($path));
        foreach($data_array as $data_value)
        {
           if(str_replace(' ', '', $data_value) != '')
           {
               if(stripos($data, $data_value) !== false)
               {
                    $result = true;
                    file_put_contents('log.txt', $data.': '.$path.PHP_EOL, FILE_APPEND);
                    break ;
               }
           }
        }
    }

    return $result;
}

$path_array[1]=.......
$path_array[2]=.......
---
$path_array[75]=.......

$data=..

foreach($path_array as $path)
{
  if(searchFile($data, $path))
  {
    // do rest
  }
}
我的问题

1) 每个文件的文件大小最大为500KB,因此我使用文件内容读取快速插入的fopen、fgets、

--我说得对吗

2) 每个文件大约有20000行。D0我需要在函数内部使用unset($data\u array)以获得更好的性能

unset($data_array); 

预先感谢

如果你的代码按预期执行,你希望它被审查(仔细检查可能的改进),我建议。考虑使用一些缓存来缓存你的结果。(需要分析您的请求,看看它们是否有一些相似之处。此外,您可能可以使用
grep
检查文件中是否存在字符串,而无需在PHP中加载它。由于grep逐字节读取,速度可能会快得多请参阅有关grep用法的回答:谢谢您的回复我需要搜索字符串中是否存在行,而不是字符串退出I。)很抱歉,我的英语不清楚