I'm adding a #b hash to each link via the DOMDocument class.
$dom = new DOMDocument();
$dom->loadHTML($output);
$a_tags = $dom->getElementsByTagName('a');
foreach($a_tags as $a)
{
$value = $a->getAttribute('href');
$a->setAttribute('href', $value . '#b');
}
return $dom->saveHTML();
That works fine, however the returned output includes a DOCTYPE
declaration and a <head>
and <body>
tag. Any idea why that happens or how I can prevent that?
That's what DOMDocument::saveHTML()
generally does, yes : generate a full HTML Document, with the Doctype declaration, the <head>
tag, ...
Two possible solutions :
saveHTML()
accepts one additional parameter that might help you
str_replace()
or regex or whatever equivalent you can think of to remove the portions of HTML code you don't need.