本文章给家收集了大量的关于 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, ‘ ’); 保留字符串中的 p、img、em 标签。 |
如果想去掉的 html 的指定标签那么这个函数就不能满足需求了于是乎我用到了这个函数
代码如下 | |
/** * 删除指定的 HTML 标签及其中内容,暂时只支持单标签清理 < br ow="0" oh="0">* * @param string $string -- 要处理的字符串 < br ow="0" oh="0">* @param string $tagname -- 要删除的标签名称 < br ow="0" oh="0">* @param boolean $clear -- 是否删除标签内容 < br ow="0" oh="0">* @return string -- 返回处理完的字符串 < br ow="0" oh="0">*/ function replace_html_tag($string, $tagname, $clear = false){ $re = $clear ? '':'1'; $sc ='/<'. $tagname .'(?:s[^>]*)?>([sS]*?)?/i'; return preg_replace($sc, $re, $string); } |
以下是测试代码
代码如下 | |
// 百度首页内容 $string = file_get_contents('http://www.phprm.com/'); // 去掉 style 及包含内容 < br ow="0" oh="0">$string = replace_html_tag($string, 'style', true); // 去掉 a 标签,并保存其中内容 < br ow="0" oh="0">$string = replace_html_tag($string, 'a'); // 去掉 span 标签,并保存其中内容 < br ow="0" oh="0">$string = replace_html_tag($string, 'span'); echo $string; |
如果我们要删除指定两者之间的数据
代码如下 | |
/** * PHP 去掉特定的 html 标签 < br ow="0" oh="0">* @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 ="您好 "; |
来源: https://www.php1.cn/detail/php-52f4490b9e.html