• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 3年前 (2022-01-23) 15次浏览 已收录 0个评论

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

<span>function</span> format(\DOMNode <span>$node</span>, <span>$treeIndex</span> = 0<span>){    </span><span>//</span><span>不格式化的标签</span><span>if</span> (<span>in_array</span>(<span>$node</span>->nodeName, <span>array</span>("title", "p", "span"<span>)))        </span><span>return</span><span>;    </span><span>if</span> (<span>$node</span>-><span>hasChildNodes()) {        </span><span>$treeIndex</span>++<span>;        </span><span>$tabStart</span> = "\r\n" . <span>str_repeat</span>("   ", <span>$treeIndex</span><span>);        </span><span>$tabEnd</span> = "\r\n" . <span>str_repeat</span>("   ", <span>$treeIndex</span> - 1<span>);        </span><span>$i</span> = 0<span>;        </span><span>while</span> (<span>$childNode</span> = <span>$node</span>->childNodes->item(<span>$i</span>++<span>)) {            </span><span>//</span><span>去除空的text node</span><span>if</span> (<span>$childNode</span>->nodeType == XML_TEXT_NODE and <span>preg_match</span>('#^\s*$#', <span>$childNode</span>-><span>nodeValue)) {                </span><span>$node</span>->removeChild(<span>$childNode</span><span>);                </span><span>$i</span>--<span>;                </span><span>continue</span><span>;            }            </span><span>$node</span>->insertBefore(<span>$node</span>->ownerDocument->createTextNode(<span>$tabStart</span>), <span>$childNode</span><span>);            </span><span>$i</span>++<span>;            format(</span><span>$childNode</span>, <span>$treeIndex</span><span>);        };        </span><span>$node</span>->appendChild(<span>$node</span>->ownerDocument->createTextNode(<span>$tabEnd</span><span>));    }}</span><span>$html</span> = '<meta charset="utf-8"><title></title><body>'<span>;</span><span>$doc</span> = <span>new</span><span> \DOMDocument();</span><span>//</span><span>$doc->formatOutput = true; //不知道是不是我的理解问题,这个选项格式化出来的并不完美</span><span>$doc</span>->loadHTML(<span>$html</span><span>);format(</span><span>$doc</span>-><span>documentEleme<p style="color:transparent">本文来源gao!%daima.com搞$代*!码$网3</p><strong>搞代gaodaima码</strong>nt);</span><span>echo</span><span>$doc</span>->saveHTML();

以上就介绍了php DOMDocument 递归 格式化缩进HTML文档,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php DOMDocument 递归 格式化缩进HTML文档
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址