首页 >后端开发 >php教程 > 正文

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

原创2016-07-29 09:02:030467
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中文网最新课程二维码

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

  • 相关标签:gt node childNode HTML treeIndex
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 专题推荐

    作者信息

    php中文网

    认证0级讲师

    推荐视频教程
  • javascript初级视频教程javascript初级视频教程
  • jquery 基础视频教程jquery 基础视频教程
  • 视频教程分类