去除html标签工具(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, ‘&<p&>&<img&>&<em&>’); 保留字符串中的p、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 — 是指需要过滤的一段字符串,比如p、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='&<p&>&<a href=&”http://www.tsingyaun.cn&” target=&”_blank&”&>&<img class=&”aligncenter&” src=&”http://www.tsingyuan.cn/logo.png&” border=&”0&″ alt=&”Welcome to linzl.&” /&>This a example from&<em&>lixiphp&</em&>&</a&>&<strong&>!&</strong&>&</p&>
&‘;
$target = strip_only_tags($source, array(&‘a&’,&’em&’));
//target results
//&<p&>&<img class=&”aligncenter&” src=&”http://blog.lixiphp.com/logo.png&” border=&”0&″ alt=&”Welcome to lixiphp.&” /&>This a example from&<strong&>!&</strong&>&</p&>
:left;&”