本文章給家收集了大量的關于html標簽的去除方法,很多朋友可能會想到使用strip_tags函數,但這個函數會把所有的html標簽全部刪除了,下面我來給大家介紹去掉指定的html標簽及內容方法,有需要了解的朋友可參考。
string strip_tags ( string str [, string allowable_tags] )
弊端:這個函數只能保留想要的html標簽,就是參數string allowable_tags,在yizero的評論中我知道了這個函數的參數allowable_tags的其他的用法,代碼如下:
strip_tags($source, ”); 去掉所以的html標簽。
strip_tags($source, ‘<div><img><em>’); 保留字符串中的div、img、em標簽,如果想去掉的html的指定標簽,那么這個函數就不能滿足需求了,于是乎我用到了這個函數,代碼如下:
- <?php
- /**
- * 刪除指定的HTML標簽及其中內容,暫時只支持單標簽清理
- *
- * @param string $string -- 要處理的字符串
- * @param string $tagname -- 要刪除的標簽名稱
- * @param boolean $clear -- 是否刪除標簽內容
- * @return string -- 返回處理完的字符串
- */
- function replace_html_tag($string, $tagname, $clear = false){
- $re = $clear ? '' : '1';
- $sc = '/<' . $tagname . '(?:s[^>]*)?>([sS]*?)?</' . $tagname . '>/i';
- return preg_replace($sc, $re, $string);
- }
以下是測試代碼,代碼如下:
- // php粉絲網首頁內容
- $string = file_get_contents('http://www.companysz.com/');
- // 去掉 style 及包含內容
- $string = replace_html_tag($string, 'style', true);
- $string = replace_html_tag($string, 'script', true);
- // 去掉 a 標簽,并保存其中內容
- $string = replace_html_tag($string, 'a');
- // 去掉 span 標簽,并保存其中內容
- $string = replace_html_tag($string, 'span');
- echo $string;
- ?>
如果我們要刪除指定兩者之間的數據,代碼如下:
- <?php
- /**
- * PHP去掉特定的html標簽
- * @param array $string
- * @param bool $str
- * @return string
- */
- function _strip_tags($tagsArr,$str) {
- foreach ($tagsArr as $tag) {
- $p[]="/(<(?:/".$tag."|".$tag.")[^>]*>)/i";
- }
- $return_str = preg_replace($p,"",$str);
- return $return_str;
- }
- $str = "<b>您好</b><input type='text' name='' /><a href='http://www.companysz.com'>php粉絲網</a>";
- echo _strip_tags(array("b", "input", "a"),$str); #去掉 B 標簽和 INPUT 標簽
- ?>
新聞熱點
疑難解答