PHP 关闭未关闭的标签

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 关闭未关闭的标签相关的知识,希望对你有一定的参考价值。

<?php
/**
* Find and close unclosed xml tags
**/
function close_tags($text) {
    $patt_open    = "%((?<!</)(?<=<)[\s]*[^/!>\s]+(?=>|[\s]+[^>]*[^/]>)(?!/>))%";
    $patt_close    = "%((?<=</)([^>]+)(?=>))%";
    if (preg_match_all($patt_open,$text,$matches))
    {
        $m_open = $matches[1];
        if(!empty($m_open))
        {
            preg_match_all($patt_close,$text,$matches2);
            $m_close = $matches2[1];
            if (count($m_open) > count($m_close))
            {
                $m_open = array_reverse($m_open);
                foreach ($m_close as $tag) $c_tags[$tag]++;
                foreach ($m_open as $k => $tag)    if ($c_tags[$tag]--<=0) $text.='</'.$tag.'>';
            }
        }
    }
    return $text;
}
?>

以上是关于PHP 关闭未关闭的标签的主要内容,如果未能解决你的问题,请参考以下文章

如何呈现包含打开和未关闭标签的组件?反应.js

使用 BeautifulSoup 解析未关闭的 `<br>` 标签

从 xhtml 文档中删除未关闭的打开 <p> 标签

标签和按钮未出现 PyQt5,Python 3 [关闭]

如何修复 jsx 结束标签上的 linting 错误:“未关闭的正则表达式”?

springboot 1.5.2 thymeleaf 标签未关闭异常解决办法