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) を使用して単一の文字列を一致させると、同じ効果が得られます。鍵はやはりアルゴリズムにあります!アルゴリズムはよく書かれており、すべての関数は同じです。
http://www.bkjia.com/PHPjc/318650.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/318650.html技術記事注: 以下のすべての関数は正規表現を使用しません。 上記は、同じ目的を達成するために最初に一致する 3 つの関数を抽出することです。コードは次のとおりです。 functionstr_cut($str,$start,$en...
)