您的位置 首页 php

PHP 移除特定HTML标签的方法

PHP默认的函数有移除指定html标签,名称为strip_tags,在某些场合非常有用。

strip_tags

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

strip_tags — Strip HTML and PHP tags from a string

string strip_tags ( string str [, string allowable_tags] )

弊端 :

这个函数只能保留想要的html标签,就是参数string allowable_tags。

这个函数的参数allowable_tags的其他的用法。

strip_tags($source, ”); 去掉所以的html标签。

strip_tags($source, ‘<div><img><em>’); 保留字符串中的div、img、em标签。

如果想去掉的html的指定标签。那么这个函数就不能满足需求了。于是乎我用到了这个函数。

/**

* Removes specific tags.

*/

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;

}

参数说明

$str — 是指需要过滤的一段字符串,比如div、p、em、img等html标签。

$tags — 是指想要移除指定的html标签,比如a、img、p等。

$stripContent = FALSE — 移除标签内的内容,比如将整个链接删除等,默认为False,即不删除标签内的内容。

使用说明

$target = strip_only_tags($source, array(‘a’,’em’,’b’));

移除$source字符串内的a、em、b标签。

$source='<div><a href=”#34;%20target=”_blank”><img src=”#34;%20border=”0″ alt=”Welcome to linzl.” />This a example from<em>lixiphp</em></a><strong>!</strong></div>

‘;

$target = strip_only_tags($source, array(‘a’,’em’));

//target results

//<div><img src=”#34;%20border=”0″ alt=”Welcome to lixiphp.” />This a example from<strong>!</strong></div>

:left;”

文章来源:智云一二三科技

文章标题:PHP 移除特定HTML标签的方法

文章地址:https://www.zhihuclub.com/77540.shtml

关于作者: 智云科技

热门文章

网站地图