1.   阿里云服务器1888元代金券领取
  2.   本网站所有源码包解压密码:www.youhutong.com
登录  帮助问答

PHP删除html标签,以及删除标签内容,strip_tags函数升级版方法!

小川 技术文章
郑重声明:
  本站发布的内容仅限用于学习和研究目的.请勿用于商业或非法用途,否则后果请用户自负,下载后请24小时内删除。 本站所有内容均不能保证其完整性,不提供任何技术支持,不能接受请勿购买或下载,如需完整程序,请去其官方购买正版使用。

我们知道php自带的函数strip_tags即可满足我们删除html标签。

此函数的优点是简单粗暴,但是缺点也很明显,如:

1、如果有一大堆标签,而我只是想删除指定的某一个,那要写很多需要保留的标签。


那么来自己写一个方法实现一下我们日常最实用的删除html标签方法。

strip_tags()删除全部或者保留指定html标签  【PHP系统自带函数


此函数的优点是简单粗暴,但是缺点也很明显,如:

1、如果有一大堆标签,而我只是想删除指定的某一个,那要写很多需要保留的标签。

/*--------------删除全部或者保留指定html标签(标签的内容会被保留)-----------------*/
$str = '<div><p>P标签</p><img src="" alt="IMG标签"><a href="">这里是A标签</a><br></div>';

echo strip_tags($str, '<p><a>');
//输出:    <p>P标签</p><a href="">这里是A标签</a>


strip_html_tags01()删除指定的html标签(标签的内容会被保留) 【自写方法


调用这个方法,传入需要删除的html标签就可以了。

避免了:如果有一大堆标签,而我只是想删除指定的某一个,那要写很多需要保留的标签。

如果我们删除的标签里有内容,我们又想一起删除怎么办。

/*------------------删除指定的html标签(标签的内容会被保留)------------------*/
$str = '<div><p>P标签</p><img src="" alt="img标签"><a href="">这里是A标签</a><br></div>';

function strip_html_tags01($tags, $str){
    $html=array();
    foreach ($tags as $tag) {
        $html[] = "/(<(?:\/" .$tag. "|" .$tag. ")[^>]*>)/is";
    }
    $data=preg_replace($html, '', $str);
    return $data;
}

echo strip_html_tags01(array('p', 'img', 'br'), $str);
//输出:    <div>P标签<a href="">这里是A标签</a></div>


strip_html_tags02()删除指定的html标签(标签的内容不会被保留) 【自写方法


调用这个方法,传入需要删除的html标签就可以了。

这样可以一起删除掉标签里的内容了。

但是现在所写都是针对单个需求写的,那么我们整合到一个方法里不是很好,当然。

/*------------------删除指定的html标签(标签的内容不会被保留)------------------*/
$str = '<div><p>P标签</p><img src="" alt="img标签"><a href="">这里是A标签</a><br></div>';

function strip_html_tags02($tags, $str){
    $html=array();
    foreach ($tags as $tag) {
        $html[]='/<' .$tag. '.*?>[\s|\S]*?<\/' .$tag. '>/is';
        $html[]='/<' .$tag. '.*?>/is';
    }
    $data=preg_replace($html, '', $str);
    return $data;
}

echo strip_html_tags02(array('p', 'img'), $str);
//输出:    <div><a href="">这里是a标签</a><br></div>


stripHtmlTags()删除指定的html标签(是否需要保存标签的内容:可选) 【自写方法


/*---------------- 删除指定的html标签(标签的内容:是否需要保存可选)-------------*/
$str = '<div><p>P标签</p><img src="" alt="img标签"><a href="">这里是A标签</a><br></div>';

/**
 * 删除指定标签
 * @param array  $tags    删除的标签
 * @param string $str     html字符串
 * @param bool   $type    是否保留标签的内容
 * @return mixed
 */
function stripHtmlTags($tags, $str, $content=false)
{
    $html = [];
    if($content){
        foreach ($tags as $tag) {
            $html[] = "/(<(?:\/" .$tag. "|" .$tag. ")[^>]*>)/is";
        }
    }else{
        foreach ($tags as $tag) {
            $html[] = '/<' .$tag. '.*?>[\s|\S]*?<\/' .$tag. '>/is';
            $html[] = '/<' .$tag. '.*?>/is';
        }
    }
    $data = preg_replace($html, '', $str);
    return $data;
}

del_tags( stripHtmlTags(array('a','img','br'), $str, false) );
//输出:    <div><p>这里是p标签</p></div>



那么在实际中,推荐大家用最后这个方法:stripHtmlTags()




 浏览器启用弹出窗口过滤功能,将无法跳转到下载页。在浏览器地址栏右边符号提示处点击允许就可以了!

转载请注明来源地址:小川编程 » https://www.youhutong.com/index.php/article/index/195.html


  1、本站发布的内容仅限用于学习和研究目的.请勿用于商业或非法用途,下载后请24小时内删除。
  2、本站所有内容均不能保证其完整性,不能接受请勿购买或下载,如需完整程序,请去其官方购买正版使用
  3、本站联系方式Email:admin@youhutong.com ,收到邮件会第一时间处理。
  4、如侵犯到任何版权问题,请立即告知本站(立即在线告知),本站将及时删除并致以最深的歉意
( 0 )个小伙伴在吐槽
    登录帐号  如果已经登录请刷新! 发表我的评论
    表情