ホームページ  >  記事  >  バックエンド開発  >  PHP は通常の収集速度を使用しない調査の概要_PHP チュートリアル

PHP は通常の収集速度を使用しない調査の概要_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:53:44762ブラウズ


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

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

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

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

関数 str_cut3($ content,$start ,$end){//最初の一致の取得は、文字列が大きいほど遅くなります。
$my =explode($start,$content);
$my =explode($end,$my[1]);
}


以下は、一致する 3 をすべて削除します。同じ収集目的を達成するための関数 (すべてオリジナル)


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

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

function str_cut_all( $str,$start, $end,$carr=array()) //再帰的で実行効率が最も遅い! ({
If ($ Str, $ Start))
{
$ Str = Strstr ($ Str, $ Start);
$ Str = Substr ($ Str, Strlen ($ Start)); substr( $str, 0, strpos( $str, $end ) );
,$start, $end ,$carr ); $carr を返す
}

関数 my_Ca($content,$ start,$end){// すべての一致を取得します。これは一度だけ読み取られるため、最も効率的です。文字列が大きいほど、より明確になります
$m =explode($start,$content);
$a = array();
for( $i = 1;$i {
$my =explode($end,$ m [$ i]); $ my [0];
unset ($ my);
}
Return $ a;

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


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


また速くなりました!


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

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/318650.html技術記事注: 以下のすべての関数は正規表現を使用しません。 上記は、同じ目的を達成するために最初に一致する 3 つの関数を抽出することです。コードは次のとおりです。 functionstr_cut($str,$start,$en...
)
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。