preg_replace is a built-in text matching mode in Perl, but some parameters are more complicated to use than ereg_relace. In actual project applications, there are still many people using ereg. Recently, I wrote a function to obtain text in HTML. I found that preg_replace is actually nearly twice as fast as ereg_replace. The two functions are as follows:
Use preg_replace
function GetHtmlText($str)
{
$str = preg_replace("/
$alltext = "";
$start = 1;
for( $i=0;$i
else if($ start==1){
if($str[$i]=="<"){ $start = 0; $alltext .= " "; }
else if(ord($str[$i])> ;32) $alltext .= $str[$i];
}
}
$alltext = preg_replace("/&([^;&]*)(;|&)/"," ",$alltext);
$alltext = preg_replace("/{1,}/"," ",$alltext);
$alltext = preg_replace("/{1,}/"," ",$alltext);
return $alltext;
}
Use ereg_replace
function GetHtmlText($str)
{
$str = eregi_replace("
$alltext = "";
$start = 1;
for($i=0;$i
else if($start==1){
if($str[$i]==" <"){ $start = 0; $alltext .= " "; }
else if(ord($str[$i])>32) $alltext .= $str[$i];
}
}
$alltext = ereg_replace("&([^;&]*)(;|&)"," ",$alltext);
$alltext = ereg_replace("{1,}"," ",$alltext);
$alltext = ereg_replace(" {1,}"," ",$alltext);
return $alltext;
}
After many tests and comparisons, the function using preg_replace generally takes between 0.08-0.12 seconds, and using ereg_replace The function takes between 0.35-0.38 seconds. The test webpage is Baidu's homepage. My system has a Tualatin 1.1G CPU and 384M memory.
If you still use ereg to process longer text in your program, it is recommended to change it immediately.
Thank you for reading, I hope it will be helpful to everyone. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!