preg_replace は Perl に組み込まれたテキスト マッチング モードですが、実際のプロジェクト アプリケーションでは ereg_rerace よりも使用するのが複雑なパラメータもあります。最近、HTML でテキストを取得する関数を書きました。 preg_replace は ereg_replace のほぼ 2 倍高速であることがわかりました。2 つの関数は次のとおりです。
preg_replace を使用します
関数 GetHtmlText($str)
{
$str = preg_replace("/
|
$start = 1;
for($i=0;$i
if($start==0 && $str[$i]==">") $start = 1;
if($str[$i]=="<"){ $start = 0; " ";
else if(ord($str[$i])>32) $alltext .= $str[$i];
}
}
$alltext = preg_replace("/&([^;&]*)(;|&)/"," ",$alltext);
$alltext = preg_replace("/{1,}/"," ",$alltext);
$alltext = preg_replace("/ {1,}/"," ",$alltext);
$alltext を返します;
}
ereg_replace を使用してください
関数 GetHtmlText($str)
{
$str = eregi_replace("
|
|
for($i=0;$i
if($start==0 && $str[$i]==">") $start = 1;
else if($start==1){
}
}
$alltext = ereg_replace("&([^;&]*)(;|&)"," ",$alltext);
$alltext = ereg_replace("{1,}"," ",$alltext);
$alltext = ereg_replace(" {1,}"," ",$alltext);
$alltext を返します;
}
多くのテストと比較の結果、preg_replace を使用した関数は通常 0.08 ~ 0.12 秒でしたが、ereg_replace を使用した関数は 0.35 ~ 0.38 秒でした。テスト Web ページは Baidu のホームページで、私のシステムは Tualatin 1.1G、メモリ 384M でした。
プログラムがまだ ereg を使用して長いテキストを処理している場合は、すぐに変更することをお勧めします。