• 技术文章 >后端开发 >PHP问题

    php怎么清除html标签?

    青灯夜游青灯夜游2020-11-06 17:36:02原创846

    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);

    示例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);
    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);
    /**
     * 删除指定标签
     *
     * @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中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php html标签
    上一篇:mac怎么删除php? 下一篇:php输出中文乱码问题怎么解决?
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• php下载文件出现乱码怎么解决• linux下php扩展怎么正确安装• php安装memcache扩展的方法是什么• 分析PHP URL中特殊字符引起的问题(+,\,=)• CI框架怎么去掉index.php?
    1/1

    PHP中文网