php怎么实现html标签自动闭合

本篇内容主要讲解“php怎么实现html标签自动闭合”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php怎么实现html标签自动闭合”吧!

10年积累的成都网站设计、网站制作、外贸营销网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有黎城免费网站建设让你可以放心的选择与我们合作。

实现代码:

/**
     * @Description: html 自动闭合
     * @param string    $html   html
     * @param int       $len    闭合搜寻附近的标签次数 默认3个 最小1
     * @return: string 
     */
    public function subHtml($html,$len = 3)
    {
        #去除注释
        #$html = preg_replace('~','',$html);
        $result = '';
        $tagStack = array();
        $contents = preg_split('~(|<[\s\r\n]*script(?:.|\r|\n)+?<[\s\r\n]*/[\s\r\n]*script[\s\r\n]*>|<[\s\r\n]*/?[\s\r\n]*[a-z0-9]+(?:[^\'">]*?([\'"])(?:\\\\\2|(?!\2).)*?\2)*[^\'">]*>)~si', $html, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
        foreach ($contents as $kkk => $tag) {
            if ($tag == "" || $kkk-1 >= 0 && ($tag == "'" || $tag == '"') && preg_match('~^<[\s\r\n]*([a-z0-9]+)[\s\r\n]*(?:[^\'">]*?([\'"])(?:\\\\\2|(?!\2).)*?\2)+[^\'">]*>$~si', $contents[$kkk-1], $match) ) continue;
            $reg = '^$|^<[\s\r\n]*(?:input|img|isindex|area|base|basefont|bgsound|col|embed|frame|keygen|link|meta|nextid|param|plaintext|spacer|wbr|br)(?:[^\'">]*?([\'"])(?:\\\\\1|(?!\1).)*?\1)*?[^\'">]*>$';
            #增加兼容自定义标签  by:LingMax 
            #$reg .= '|^<[\s\r\n]*[a-z0-9]+(?:(?:[^\'">]*?)([\'"])(?:\\\\\2|(?!\2).)*?\2)*?[^\'">]*/[\s\r\n]*>$';
            if (preg_match('~'.$reg.'~si', $tag)) {
                $result .= $tag;#放行 img这种自带闭合的标签
            } else if (preg_match("~^<[\s\r\n]*/[\s\r\n]*([a-z0-9]+)[\s\r\n]*>$~si", $tag, $match)) {
                $arrb = $tagStack;
                $bz = false;
                $lsstr = '';
                for ($i=0; $i < $len; $i++) { 
                    $ls = array_pop($arrb);
                    if($ls == $match[1]){
                        $lsstr .= $tag;
                        $bz = true;
                        break;
                    }else{
                        #出现标签闭合问题 需要修补
                        $lsstr .= '';
                        #array_push($tagStack, $ls);
                    }
                }
                if($bz){
                    $tagStack = $arrb;
                    $result .= $lsstr;
                }else{
                    $result .= '";
                }
 
            } else if (preg_match('~^<[\s\r\n]*([a-z0-9]+)[\s\r\n]*(?:[^\'">]*?([\'"])(?:\\\\\2|(?!\2).)*?\2)*[^\'">]*>$~si', $tag, $match)) {
                array_push($tagStack, $match[1]);
                $result .= $tag;
            }else {
                $result .= $tag;
            }
        }
        while (!empty($tagStack)) {
            $result .= '';
        }
        return $result;
    }

PHP开发环境搭建工具有哪些

一、phpStudy,是一个新手入门最常用的开发环境。

二、WampServer,WampServer也同样的也是和phpStudy一样操作简单对小白比较友好。

三、XAMPP,XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包。

四、MAMP,MAMP分为两种MAMP和MAMP Pro for Mac。

五、宝塔面板,宝塔面板是一款服务器管理软件,支持windows和linux系统。

六、UPUPW,UPUPW是目前Windows平台下最具特色的Web服务器PHP套件。

到此,相信大家对“php怎么实现html标签自动闭合”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


本文名称:php怎么实现html标签自动闭合
文章地址:http://scyanting.com/article/ppcgip.html