I am trying to put $htmlString into an existing div tag that I have
<?php
$htmlString = "<ul><li>some items</li><li>some items</li><li>some items</li></ul>";
$dom = new domDocument;
$dom->loadHTML($html);
$div_tag = $dom->getElementById('demo');
echo $dom->saveHTML($div_tag);
?>
In the div tag, I already have some content and I want to append $htmlString into the div tag
<div id="demo"><h1>Recent Posts</h1></div>
I want the output to be
<div id="demo"><h1>Recent Posts</h1>
<ul><li>some items</li><li>some items</li><li>some items</li></ul>
</div>
As $htmlString is actually produced from another function so I cannot simply do
<div id="demo">
<h1>Recent Posts</h1>
<?php echo "<ul><li>some items</li><li>some items</li><li>some items</li></ul>" ?>
</div>
Nice and easy, you need a fragment!
<?php
$html = '<div id="demo"><h1>Recent Posts</h1></div>';
$dom = new DomDocument();
$dom->loadHTML($html);
$node = $dom->getElementsByTagName('div')->item(0); // your div to append to
$fragment = $dom->createDocumentFragment();
$fragment->appendXML('<ul><li>some items</li><li>some items</li><li>some items</li></ul>');
$node->appendChild($fragment);
echo $dom->saveHTML();
Which will give you your desired output. Check it out here https://3v4l.org/JrJan
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With