PHPの通常関数2preg_match_all

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

PHP 通常関数 2 preg_match_all

? Perl スタイルの通常の関数 preg_match_all を続けましょう。

?

?

<?php>
preg_match_all ($pattern, $subject, array &$matches = null, $flags = null, $offset = null)
<?>
?

? パラメータ: preg_match とまったく同じです。

?

? ? 関数: preg_match と同様に、 $subject 文字列内の $pattern と一致しますが、 preg_match_all は最初の結果が一致しても検索を停止せず、 $subject の終わりまで検索します。

?

? ? ? 戻り値: 関数関数によると、preg_match_all は $subject 全体を最後まで検索し、一致する結果をすべて返します。一致する結果の例を見てみましょう。

?

<?php>
	$url = 'http://www.sina.com.cn/abc/de/fg.php?fff.html?id=1';
	$matches = array();
	$pattern = '/(\.){1}[^.|?]+(\?){1}/i';
	$count = preg_match_all($pattern, $url, $matches);
	var_dump($count);
	var_dump($matches);
<?>
?出力

int 2

array (size=3)
  0 => 
    array (size=2)
      0 => string '.php?' (length=5)
      1 => string '.html?' (length=6)
  1 => 
    array (size=2)
      0 => string '.' (length=1)
      1 => string '.' (length=1)
  2 => 
    array (size=2)
      0 => string '?' (length=1)
      1 => string '?' (length=1)
?この例は、

http://www.sina.com.cn/abc/de/fg.php?fff .html?id=1 文字列内の 2 つの赤い部分。 $matches の要素も配列型であることがわかります。$matches[0] は一致結果を格納し、$matches[1] は正規 1 の一致結果を格納し、$matches[2] は正規 2 の一致結果を格納します。 。直感的ではないかもしれませんが、下の写真を見ると理解できます ?


黒い矢印は $pattern の正規マッチング、緑色の矢印は準正規マッチングです。

成功した不一致の別の例を見てください

<?php>
	$url = 'http://www.sina.com.cn/abc/de/fg.php?fff.html?id=1';
	$matches = array();
	$pattern = '/(\.){1}[^.|?]+(\?){2}/i';
	$count = preg_match_all($pattern, $url, $matches);
	var_dump($count);
	var_dump($matches);
<?>
?出力

int 0

array (size=3)
  0 => 
    array (size=0)
      empty
  1 => 
    array (size=0)
      empty
  2 => 
    array (size=0)
      empty
?

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