php的PCRE函数非常慢



我创建了一个简单的脚本,用于在txt文件中搜索关键词。

<?php
$search_term = "lorem";
$file = file('textfile.txt');
foreach($file as $line_number => $line){
$row = preg_match('/' . $search_term . '/i', $line);
echo $row;
}

TXT文件有>7000行,总共~ 6mb

在php 5.6, 7.0或7.1中,脚本运行时间为60 - 100毫秒,但在php>= 7.2中,执行时间高达3.5秒。

我比较了每个versión的php.ini文件,我没有看到PCRE选项有任何差异。

有人能帮我吗?

提前感谢。

这可能更适合你,而且速度很快。

$words=explode(' ',$words);
$words=implode('|',$words);
$search=shell_exec( "grep -E '{$words}' data.txt");
$search=explode('n',$search);
foreach($search as $line){echo '<p>'.$line.'</p>';};

您概述的方法也将使用大量内存。我的例子将使用next to nothing

相关内容

  • 没有找到相关文章

最新更新