ホームページ  >  記事  >  バックエンド開発  >  正規表現を使用してタグが閉じられているかどうかを検出します

正規表現を使用してタグが閉じられているかどうかを検出します

WBOY
WBOYオリジナル
2016-07-25 08:46:131214ブラウズ
  1. function check_html($html) {
  2. preg_match_all("/<([a-zA-Z0-9]+)\s*[^\/>]*>/",$html,$ start_tags);
  3. preg_match_all("//", $html, $end_tags);
  4. if(count($start_tags[1]) != count ($end_tags[1])) return false;
  5. for($i = 0; $i < count($start_tags[1]); $i++) {
  6. if(!in_array($start_tags[1][$i ], $end_tags[1])) return false;
  7. }
  8. return true;
  9. }
コードをコピー

説明:

/]*>/ このパターンは、HTML タグ (

など、ただし
を除く) と一致するために使用され、タグの名前 (head、div など) を $ に保持します。 start_tags は待機します)。 // パターンは、閉じた HTML タグ (、
など) と一致するために使用されます。そして、閉じられたタグ名を $end_tags に保持します。次に、条件ステートメント count($start_tags[1]) != count($end_tags[1]) を使用して、開始タグと終了タグが等しいかどうかを判断します。等しくない場合は、それらが閉じられていないことを意味します。最後に、in_array($start_tags[1][$i], $end_tags[1]) を使用して、開始タグと終了タグが等しいかどうかを判断します。この時点で、HTML マッチングが完了しました。
正規表現


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