PHP移除指定HTML標(biāo)簽方法總結(jié)
來(lái)源:程序員人生 發(fā)布時(shí)間:2013-12-11 15:01:37 閱讀次數(shù):3698次
在php中我們最常用的指定HTML標(biāo)簽可以直接使用strip_tags函數(shù)來(lái)替換了,利用它可以過(guò)濾所有的html標(biāo)簽哦,下面我來(lái)給大家介紹除了此函數(shù)之外的其它辦法。
有時(shí)候我們需要把html標(biāo)簽頁(yè)存到數(shù)據(jù)庫(kù)里,但是有些場(chǎng)合卻需要拿無(wú)html標(biāo)簽的純數(shù)據(jù),這個(gè)時(shí)候就要對(duì)帶html標(biāo)簽的數(shù)據(jù)進(jìn)行處理,把html標(biāo)簽都去掉,平時(shí)用 htmlspecialchars() 來(lái)過(guò)濾html,但是把html的字符轉(zhuǎn)義了,最后顯示出來(lái)的就是html源代碼,利用strip_tags()就可以把html標(biāo)簽去除掉.
PHP默認(rèn)的函數(shù)有移除指定html標(biāo)簽,名稱為strip_tags,在某些場(chǎng)合非常有用。
strip_tags
strip_tags — Strip HTML and PHP tags from a string
string strip_tags ( string str [, string allowable_tags] )
弊端:這個(gè)函數(shù)只能保留想要的html標(biāo)簽,就是參數(shù)string allowable_tags,這個(gè)函數(shù)的參數(shù)allowable_tags的其他的用法,代碼如下:
strip_tags($source,”); 去掉所以的html標(biāo)簽。
strip_tags($source,‘<div><img><em>’); 保留字符串中的div、img、em標(biāo)簽。
如果想去掉的html的指定標(biāo)簽,那么這個(gè)函數(shù)就不能滿足需求了,于是乎我用到了這個(gè)函數(shù),代碼如下:
- 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) == '') {
- array_pop($tags);
- }
- }
-
- foreach($tags as $tag) {
- if ($stripContent) {
- $content = '(.+<!--'.$tag.'(-->|s[^>]*>)|)';
- }
-
- $str = preg_replace('#<!--?'.$tag.'(-->|s[^>]*>)'.$content.'#is', '', $str);
- }
-
- return $str;
- }
參數(shù)說(shuō)明
$str — 是指需要過(guò)濾的一段字符串,比如div、p、em、img等html標(biāo)簽。
$tags — 是指想要移除指定的html標(biāo)簽,比如a、img、p等。
$stripContent = FALSE — 移除標(biāo)簽內(nèi)的內(nèi)容,比如將整個(gè)鏈接刪除等,默認(rèn)為False,即不刪除標(biāo)簽內(nèi)的內(nèi)容。
使用說(shuō)明,代碼如下:
- $target = strip_only_tags($source, array(‘a’,'em’,'b’));移除$source字符串內(nèi)的a、em、b標(biāo)簽。
- $source='<div><a href="" target="_blank"><img src="logo.png" border="0" alt="Welcome to linzl." />This a example from<em>lixiphp</em></a><strong>!</strong></div>
- ';
- $target = strip_only_tags($source, array('a','em'));
-
-
-
其它辦法,代碼如下:
- <?php
-
- function strip($str)
- {
- $str=str_replace("<br>","",$str);
-
- return strip_tags($str);
- }
- ?>
一個(gè)自定義的函數(shù),代碼如下:
- **
- * 取出html標(biāo)簽
- *
- * @access public
- * @param string str
- * @return string
- *
- */
- function deletehtml($str) {
- $str = trim($str);
- $str = strip_tags($str,"<p>");
- $str = preg_replace("/t/","",$str);
- $str = preg_replace("/rn/","",$str);
- $str = preg_replace("/r/","",$str);
- $str = preg_replace("/n/","",$str);
- $str = preg_replace("/ /","",$str);
- $str = preg_replace("/ /","",$str);
- return trim($str);
- }
生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)