我們大家都知道,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,'<div><img><em>'); //去掉除了<div><img><em>以外的所有标签,即保留字符串中的div、img、em标签。
要實現去掉指定的html標籤,我們只能自己寫一個函數,函數如下:
function strip_only_tags($str, $tags, $stripContent = FALSE) { $content = ''; if (!is_array($tags)) { $tags = (strpos($str, '>') !== false ? explode('>', str_replace('<', '', $tags)) : array($tags)); if (end($tags) == '') { // http://www.manongjc.com/article/1213.html array_pop($tags); } } foreach($tags as $tag) { if ($stripContent) { $content = '(.+<!--'.$tag.'(-->|s[^>]*>)|)'; } $str = preg_replace('#<!--?'.$tag.'(-->|s[^>]*>)'.$content.'#is', '', $str); } return $str; }
參數介紹:
$str是指需要過濾的字串。
$tags是指要移除的html標籤。
$stripContent表示是否移除標籤內的內容,預設為False,即不刪除標籤內的內容。
使用實例:
<?php $string='<div><a href="http://www.manongjc.com">码农教程<em>斜体</em></a><strong>加粗</strong></div>'; $target = strip_only_tags($string, array('a','em'));//移除$string字符串内的a、em、b标签。 var_dump($target); $target = strip_only_tags($string, array('em'),true); //移除$string字符串内的a、em、b标签,并移除标签里面的内容 var_dump($target); ?>
總結:
#相信小夥伴們對本文的學習,對php中strip_tags( )只過濾字串中某一個標籤有一定的了解,希望對你的工作有幫助!
相關推薦;
################################# ##########PHP常用函數strip_tags的詳細介紹###################php 字串函數strip_tags()用法匯總####### ###以上是php中strip_tags()只過濾字串中某一個標籤的實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!