ホームページ  >  記事  >  バックエンド開発  >  preg_replace は ereg_replace よりどれくらい速いですか? _PHP チュートリアル

preg_replace は ereg_replace よりどれくらい速いですか? _PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-20 11:00:06861ブラウズ

preg_replace は Perl に組み込まれたテキスト マッチング モードですが、実際のプロジェクト アプリケーションでは ereg_rerace よりも使用するのが複雑なパラメータもあります。最近、HTML でテキストを取得する関数を書きました。 preg_replace は ereg_replace のほぼ 2 倍高速であることがわかりました。2 つの関数は次のとおりです。
preg_replace を使用します

関数 GetHtmlText($str)
{
$str = preg_replace("/
||/isU","",$str); $alltext = "";
$start = 1;
for($i=0;$i
if($start==0 && $str[$i]==">") $start = 1; else if($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("
|
|","",$str); $alltext = ""; $start = 1;
for($i=0;$i
if($start==0 && $str[$i]==">") $start = 1;
else if($start==1){ if($str[$i]=="<"){ $start = 0; " "; else if(ord($str[$i])>32) $alltext .= $str[$i];
}
}
$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 を使用して長いテキストを処理している場合は、すぐに変更することをお勧めします。


($str);$i>
(.*)>
(.*)>($str);$i> (.*)> (.*)>


http://www.bkjia.com/PHPjc/445549.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/445549.html技術記事 preg_replace は Perl に組み込まれているテキスト マッチング モードですが、実際のプロジェクト アプリケーションでは ereg を使用する人がまだ多く、パラメータによっては ereg_relace よりも使用が複雑です。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。