php怎么实现html标签自动闭合
本篇内容主要讲解“php怎么实现html标签自动闭合”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php怎么实现html标签自动闭合”吧!
实现代码:
/** * @Description: html 自动闭合 * @param string $html html * @param int $len 闭合搜寻附近的标签次数 默认3个 最小1 * @return: string */ public function subHtml($html,$len = 3) { #去除注释 #$html = preg_replace('~<!--(?:.|\r|\n)+?-->','',$html); $result = ''; $tagStack = array(); $contents = preg_split('~(<!--(?:.|\r|\n)*?-->|<[\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 = '^<!--(?:.|[\r\n])*?-->$|^<[\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)*?[^\'">]*>$'; #增加兼容自定义标签 <img1x src="" /> 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 .= '<!--修补--></'.$ls.'>'; #array_push($tagStack, $ls); } } if($bz){ $tagStack = $arrb; $result .= $lsstr; }else{ $result .= '<!--放弃'.$tag."-->"; } } 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 .= '</' . array_pop($tagStack) . '>'; } 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标签自动闭合”有了更深的了解,不妨来实际操作一番吧!这里是蜗牛博客网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。版权声明:如无特殊标注,文章均为本站原创,转载时请以链接形式注明文章出处。
评论