ホームページ  >  記事  >  バックエンド開発  >  PHP収集速度調査まとめ(オリジナル)_PHPチュートリアル

PHP収集速度調査まとめ(オリジナル)_PHPチュートリアル

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


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

上記は、同じ目的を達成するために最初の一致を抽出する 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) //まず番号を検索し、速度は中程度です
{

$sum $str = strstr( $str , $ 開始);
return $carr;
}

function str_cut_all($str,$start, $end,$carr=array()) //再帰、実行効率が最も遅い!
{
if( strpos( $str, $start) )
{
$str = strstr($str, $start);
$str = substr($str, strlen($start)); $carr[] = substr( $str, 0, strpos( $str, $end ) ); ); $end ,$carr }

}
$carr を返す
関数 my_Ca($content,$start,$ end){// すべての一致を取得します。これは一度だけ読み取られるため、文字列が大きいほど明らかです
$a = array(); for( $i = 1;$i < count($m);$i++ )
{
$my =explode($end,$ m[$i]);
$a[] = $my[0] ;
unset($my);
return $a($content,$start,$end){//
$m =explode($start,$content); ;
$sum = count($m);
for ( $i = 1;$i < $sum;$i++ )
{
$my =explode($end,$m[$i]); a[] = $my[0];
unset( $my)

return $a;

さらに速くなりました!


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

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