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
You can use [ http://php.net/manual/en/domdocument.createelement.php][1]
[1]: http://php.net/manual/en/domdocument.createelement.php , but you need to create all structure for $htmlString. Or you can do like in this answer How to insert HTML to PHP DOMNode?
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.