This method, as of 5.2.6, will automatically add <html><body> and <!DOCTYPE> tags to the document if they are missing, without asking whether you want them. In my application, I needed to use the DOM methods to manipulate just a fragment of html, so these tags were rather unhelpful.
Here's a simple hack to remove them in case, like me, all you wanted to do was perform a few operations on an HTML fragment.
$html_fragment = preg_replace('/^<!DOCTYPE.+?>/', '', str_replace( array('<html>', '</html>', '<body>', '</body>'), array('', '', '', ''), $dom->saveHTML()));
DOMDocument->saveHTML()
(No version information available, might be only in CVS)
DOMDocument->saveHTML() — Dumps the internal document into a string using HTML formatting
Description
DOMDocument
string saveHTML
( void
)
Creates an HTML document from the DOM representation. This function is usually called after building a new dom document from scratch as in the example below.
Return Values
Returns the HTML, or FALSE if an error occurred.
Παραδείγματα
Example#1 Saving a HTML tree into a string
<?php
$doc = new DOMDocument('1.0');
$root = $doc->createElement('html');
$root = $doc->appendChild($root);
$head = $doc->createElement('head');
$head = $root->appendChild($head);
$title = $doc->createElement('title');
$title = $head->appendChild($title);
$text = $doc->createTextNode('This is the title');
$text = $title->appendChild($text);
echo $doc->saveHTML();
?>
DOMDocument->saveHTML()
m at hbblogs daught calm
18-Aug-2008 08:41
18-Aug-2008 08:41
