登录  /  注册
首页 > php教程 > php手册 > 正文
php DOMDocument 递归 格式化缩进HTML文档,
php中文网
发布: 2016-06-13 08:45:43
原创
1329人浏览过

php DOMDocument 递归 格式化缩进HTML文档,


function format(\DOMNode $node, $treeIndex = 0)
{
    //不格式化的标签
    if (in_array($node->nodeName, array("title", "p", "span")))
        return;
    if ($node->hasChildNodes()) {
        $treeIndex++;
        $tabStart = "\r\n" . str_repeat("TTT", $treeIndex);
        $tabEnd = "\r\n" . str_repeat("EEE", $treeIndex - 1);
        $i = 0;
        while ($childNode = $node->childNodes->item($i++)) {
            if ($childNode->nodeType == XML_TEXT_NODE) {
                if (preg_match('#^\s*$#', $childNode->nodeValue)) {
                    $node->removeChild($childNode);
                    $i--;
                    continue;
                }
                $childNode->nodeValue = trim($childNode->nodeValue);
            }
            $node->insertBefore($node->ownerDocument->createTextNode($tabStart), $childNode);
            $i++;
            $this->format($childNode, $treeIndex);
        };
        $node->appendChild($node->ownerDocument->createTextNode($tabEnd));
    }
}

$html = '
'; $doc = new \DOMDocument(); //$doc->formatOutput = true; //不知道是不是我的理解问题,这个选项格式化出来的并不完美 $doc->loadHTML($html); format($doc->documentElement); echo $doc->saveHTML();
登录后复制

来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 技术文章
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2023 //m.sbmmt.com/ All Rights Reserved | 苏州跃动光标网络科技有限公司 | 苏ICP备2020058653号-1

 | 本站CDN由 数掘科技 提供

登录PHP中文网,和优秀的人一起学习!
全站2000+教程免费学