php DOMDocument 递归 格式化缩进HTML文档
Jul 29, 2016 am 09:02 AM
gt
html
node
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>'<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>documentElement); </span><span>echo</span><span>$doc</span>->saveHTML();
Copier après la connexion
以上就介绍了php DOMDocument 递归 格式化缩进HTML文档,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines
By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines
By DDD

Outils chauds Tags

Article chaud
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines
By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines
By DDD

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Enseignement du nœud PI: Qu'est-ce qu'un nœud PI? Comment installer et configurer le nœud PI?

Comment analysez-vous et traitez-vous HTML / XML dans PHP?
