PHP程序员小白到大牛集训(12期免息)
作者信息

青灯夜游

今天学习一小步,明天提升一大步

最近文章
php中数组array怎么求乘积394
php创建数组的函数都有什么803
laravel forge是什么890
视频教程分类
推荐视频教程
  • php程序员小白到大牛三个月集训php程序员小白到大牛三个月集训
  • Laravel 9 学习正当时—保姆级教程,想学不会都难!Laravel 9 学习正当时—保姆级教程,想学不会都难!
  • 千万级数据并发解决方案(理论+实战)千万级数据并发解决方案(理论+实战)
  • Laravel基础与实战(模块化)Laravel基础与实战(模块化)
  • UNI-APP开发(仿饿了么)UNI-APP开发(仿饿了么)
  • 首页 >后端开发 >PHP问题 > 正文

    php怎么清除html标签?

    原创2020-11-06 17:36:021259 关注公众号:每天精选资源文章推送

    php清除html标签的方法:1、使用strip_tags()函数清除html标签,语法“strip_tags(字符串)”;2、使用strip_html_tags()函数删除指定html标签,该函数可选择删除或者保留标签内的内容。

    经常扒别人网站文章的坑们;我是指那种批量式采集的压根不看内容的;少不了都会用到删除html标签的函数;这里介绍3种不同用途上的方法;

    $str='<p><p>这里是p标签</p><img src="" alt="这里是img标签"><a href="">这里是a标签</a><br></p>';

    1、删除全部或者保留指定html标签

    php自带的函数strip_tags即可满足要求,

    strip_tags() 函数剥去字符串中的 HTML、XML 以及 PHP 的标签,并返回被剥离的字符串。【推荐:《PHP视频教程》】

    使用方法:

    strip_tags(string,allow);
    • string:需要处理的字符串;

    • allow:需要保留的指定标签,可以写多个;

    示例1:

    echo strip_tags($str);
    //输出:这里是p标签这里是a标签

    示例2:

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

    此函数的优点是简单粗暴;

    但是缺点也很明显;

    如果有一大堆标签;

    而我只是想删除指定的某一个;

    那要写很多需要保留的标签;

    所以有了第二个方法;

    2、删除指定的html标签

    使用方法:

    strip_html_tags($tags,$str);
    • $tags:需要删除的标签(数组格式)

    • $str:需要处理的字符串;

    function strip_html_tags($tags,$str){
        $html=array();
        foreach ($tags as $tag) {
            $html[]="/(<(?:\/".$tag."|".$tag.")[^>]*>)/i";
        }
        $data=preg_replace($html, '', $str);
        return $data;
    }
    echo strip_html_tags(array('p','img'),$str);
    //输出:<div>这里是p标签<a href="">这里是a标签</a><br></div>;

    很多网站文章里面会带上网站名和链接;

    比如

    <a href="//m.sbmmt.com">php中文网</a>;

    这个函数就是专治这种;

    别拿这个函数采集本站啊;

    不然保证不打死你;

    3、终极函数,删除指定标签;删除或者保留标签内的内容;

    使用方法:

    strip_html_tags($tags,$str,$content);
    • $tags:需要删除的标签(数组格式)

    • $str:需要处理的字符串;

    • $ontent:是否删除标签内的内容 0保留内容 1不保留内容

    /**
     * 删除指定标签
     *
     * @param array $tags     删除的标签  数组形式
     * @param string $str     html字符串
     * @param bool $content   true保留标签的内容text
     * @return mixed
     */
    function stripHtmlTags($tags, $str, $content = true)
    {
        $html = [];
        // 是否保留标签内的text字符
        if($content){
            foreach ($tags as $tag) {
                $html[] = '/(<' . $tag . '.*?>(.|\n)*?<\/' . $tag . '>)/is';
            }
        }else{
            foreach ($tags as $tag) {
                $html[] = "/(<(?:\/" . $tag . "|" . $tag . ")[^>]*>)/is";
            }
        }
        $data = preg_replace($html, '', $str);
        return $data;
    }
    //输出<div><p>这里是p标签</p><img src="" alt="这里是img标签"><br></div>;

    前面扯了那么多;

    其实最后这个函数才是干货;

    一口气搞定各种标签删除的疑难杂症不费劲;

    别看下面这张截图了;

    无非带点颜色好看;

    我主要是拿来凑图当文章封面的;

    白俊遥博客

    更多编程相关知识,请访问:编程入门!!

    以上就是php怎么清除html标签?的详细内容,更多请关注php中文网其它相关文章!

    20期PHP线上班

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

  • 相关标签:php html标签
  • 相关文章

    相关视频


    专题推荐