首頁 >後端開發 >php教程 >php中strip_tags()只過濾字串中某一個標籤的實例分析

php中strip_tags()只過濾字串中某一個標籤的實例分析

黄舟
黄舟原創
2017-12-04 14:31:442569瀏覽

我們大家都知道,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 字串函數strip_tags()用法匯總####### ###

以上是php中strip_tags()只過濾字串中某一個標籤的實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn