簡體   English   中英

php PCRE 功能非常慢

[英]php PCRE functions very slow

我為 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 選項有任何差異。

誰能幫我?

提前致謝。

這可能對您更有效,而且速度快如閃電。

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

您概述的方法也將使用大量 ram。 我的示例將幾乎不使用任何東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM