ホームページ >php教程 >php手册 >PHP は通常の収集速度を使用しない調査の概要

PHP は通常の収集速度を使用しない調査の概要

WBOY
WBOYオリジナル
2016-06-13 12:30:171054ブラウズ


注: 以下のすべての関数は正規表現を使用しません。

上記は、同じ目的を達成するために最初に一致する 3 つの関数を抽出することです

コードをコピーします コードは次のとおりです:


function str_cut($str,$start, $end) {//最初に一致する最も効率的なものを取得し、最初に分割してから置換します。
$content = strstr($ str, $start);
$content = substr( $content, strlen( $start ), strpos( $content, $end ) - strlen( $start ) );
function str_cut1( $str ,$start, $end) {//最初の一致を効率的に取得し、直接検索して置換します
$x = strpos($str, $start)
return substr( $str, $x strlen($start), strpos($str, $end)-$x strlen($end));
}

function str_cut3($content,$start,$end); ){//最初の一致を取り出します。文字列が大きいほど遅くなります。
$my =explode($start,$content);
$my =explode($end,$my[1]);
return $my[0];

以下は、同じ収集目的を達成するために 3 つの一致する関数 (すべてオリジナル) を抽出するものです


コードをコピーします

コードは次のとおりです以下:


function strcut($str,$start, $end) //最初に番号を検索します。速度は中程度です。
{
if( strpos( $str, $start))
{
$sum = substr_count($str,$start);

$carr = array()
for($i=0;$i $str = strstr($str, $start);
$str = substr($str, strlen($start));
$carr[] = substr($str, strpos($) str, $end ) );
$end ,$carr=array()) //再帰的で実行効率が最も遅い!
{
if( strpos( $str, $start) )
{
$str = strstr($str, $start);
$str = substr($str, strlen( $start));
$carr[] = substr($str, 0, strpos($str, $end)); 🎜 > Str_cut_all ($ Str, $ End, $ Carr); >}

}
Return $ Carr; ,$start,$end){// 1 回だけ読み取られるため、最も効率が高く、文字列が大きいほど、
$m =explode($start,$content);
$a = array ();
for( $i = 1;$i {
$my =explode($end,$m[$i]);
$a[] = $my[0]
unset($my); 🎜> return $a;
}


次のように書かれた場合、my-Ca 比較
に注意してください:



コードをコピーします

コードは次のとおりです。


function my_Ca($content,$start,$ end){//すべての一致を取得
$m =explode($start,$content);
$a = array();
$sum = count($m);
for( $i = 1;$i
$ my =explode($end,$m[$i]);
$a[] = $my[0 ];

}
return $a; 🎜>}

スピードが速くなりました! 上記からわかるように、配列処理関数 (explode) が文字列処理関数 (substr など) より遅いわけでも、これより速いわけでもありません。複数のデータを照合する場合、配列関数が大きいほど、文字列の処理の利点が大きくなります。 Cut メソッド (str_cut) を使用して単一の文字列を一致させると、同じ効果が得られます。鍵はやはりアルゴリズムにあります!アルゴリズムはよく書かれており、すべての関数は同じです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。