ホームページ  >  記事  >  バックエンド開発  >  文字列内の特定のタグのみをフィルタリングする、php のstrip_tags() の分析例

文字列内の特定のタグのみをフィルタリングする、php のstrip_tags() の分析例

黄舟
黄舟オリジナル
2017-12-04 14:31:442564ブラウズ

php strip_tags() 関数は、文字列内の html、php、xml タグをフィルタリングするために使用されることは誰もが知っています。この関数は、必要な html タグ のみを保持できますが、指定された html タグをフィルタリングすることはできません。指定したHTMLタグをフィルタリングして除外するにはどうすればよいですか?今日は、文字列内の特定のタグのみをフィルターするための PHP のstrip_tags() について詳しく説明します。

php は指定された HTML タグを文字列から削除します。strip_tags() 関数は、次のような必要な HTML タグのみを保持できるため、使用できません。

strip_tags($string); //去掉$string字符串中所以的html标签.
strip_tags($string,&#39;<div><img><em>&#39;); //去掉除了<div><img><em>以外的所有标签,即保留字符串中的div、img、em标签。

指定された HTML タグを削除するには、それを記述することしかできません。関数は次のとおりです:

function strip_only_tags($str, $tags, $stripContent = FALSE) { 
  $content = &#39;&#39;; 
 
  if (!is_array($tags)) { 
    $tags = (strpos($str, &#39;>&#39;) !== false ? explode(&#39;>&#39;, str_replace(&#39;<&#39;, &#39;&#39;, $tags)) : array($tags)); 
    if (end($tags) == &#39;&#39;) { 
      // http://www.manongjc.com/article/1213.html
      array_pop($tags); 
    } 
  } 
 
  foreach($tags as $tag) { 
    if ($stripContent) { 
      $content = &#39;(.+<!--&#39;.$tag.&#39;(-->|s[^>]*>)|)&#39;; 
    } 
 
    $str = preg_replace(&#39;#<!--?&#39;.$tag.&#39;(-->|s[^>]*>)&#39;.$content.&#39;#is&#39;, &#39;&#39;, $str); 
  } 
 
  return $str; 
}

パラメータの紹介:

$str は、フィルタリングする必要がある文字列を指します。

$tags は、削除される HTML タグを指します。

$stripContent は、タグ内のコンテンツを削除するかどうかを示します。デフォルトは False で、タグ内のコンテンツは削除されません。

使用例:

<?php
$string=&#39;<div><a href="http://www.manongjc.com">码农教程<em>斜体</em></a><strong>加粗</strong></div>&#39;; 
$target = strip_only_tags($string, array(&#39;a&#39;,&#39;em&#39;));//移除$string字符串内的a、em、b标签。 
var_dump($target);
$target = strip_only_tags($string, array(&#39;em&#39;),true); //移除$string字符串内的a、em、b标签,并移除标签里面的内容
var_dump($target);
?>

概要:

友達はこの記事を勉強して、文字列内の特定のタグのみをフィルタリングするためのphpのstrip_tags()についてある程度理解していると思います。お仕事について 助かりました!

関連する推奨事項;

PHP関数strip_tagsの欠点の詳細な説明

PHPの共通関数strip_tagsの詳細な紹介

php string関数strip_tagsの使い方のまとめ()

以上が文字列内の特定のタグのみをフィルタリングする、php のstrip_tags() の分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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