php PCRE运行非常慢

lbsnaicq  于 2022-12-02  发布在  PHP
关注(0)|答案(1)|浏览(99)

我创建了一个简单脚本,用于在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行,总计约6 MB
在php 5.6,7.0或7.1中,脚本运行时间为60 - 100毫秒,但在php〉= 7.2中,执行时间长达3.5秒。
我比较了每个版本的php.ini文件,我没有看到PCRE选项的任何差异。
有人能帮我吗?
先谢谢你。

abithluo

abithluo1#

这可能会更好地为您工作,它的 lightning 般的速度。

$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>';};

你概述的方法也会使用很多内存。我的例子几乎不使用。

相关问题