• 技术文章 >后端开发 >php教程

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

    2016-07-29 09:02:03原创466
    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("   ", $treeIndex);
            $tabEnd = "\r\n" . str_repeat("   ", $treeIndex - 1);
            $i = 0;
            while ($childNode = $node->childNodes->item($i++)) {
                //去除空的text nodeif ($childNode->nodeType == XML_TEXT_NODE and preg_match('#^\s*$#', $childNode->nodeValue)) {
                    $node->removeChild($childNode);
                    $i--;
                    continue;
                }
                $node->insertBefore($node->ownerDocument->createTextNode($tabStart), $childNode);
                $i++;
                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 DOMDocument 递归 格式化缩进HTML文档,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:gt node childNode HTML treeIndex
    上一篇:解决php的“It is not safe to rely on the system’s timezone settings”问题 下一篇:正值表达式匹配html标签的属性值
    大前端线上培训班

    相关文章推荐

    • PHP中获取SQL的查询结果的常用函数整理(实例详解)• PHP中怎样去连接MySQL数据库?• PHP中mysqli_select_db与mysqli_query函数的用法• 你必须了解PHP中什么是抽象类和抽象方法• PHP中怎样完成Cookie的创建、读取和删除?

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网