: This article mainly introduces phpDOMDocument recursive formatting of indent HTML documents. if you are interested in PHP tutorials, please refer to it. Php DOMDocument recursive formatting indent HTML document
Function format (\ DOMNode $ node, $ treeIndex = 0) {// unformatted label 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 ++ )) {// Remove empty 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; // I don't know if it is my understanding, this option is incorrectly formatted. $ doc-> loadHTML ($ html); format ($ doc-> documentElement); echo $ doc-> saveHTML ();
The above introduces the php DOMDocument recursive formatting indent HTML document, including the content, hope to be helpful to friends interested in PHP tutorials.