3v4l.org

run code in 300+ PHP versions simultaneously
<?php $html = <<<EOD <li id="" class="menu-item-has-children"> <a href="https://example.com">Parent Menu Item</a> <!-- Add button HTML element here --> <ul class="sub-menu"> <!-- Child menu items --> </ul> </li> EOD; $doc = new DOMDocument(); $doc->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD); $xpath = new DOMXPath($doc); foreach ($xpath->query('//li[@class="menu-item-has-children"]/a') as $a) { $button = $doc->createElement('button', 'Your button text'); // modify button as required // ... // add to document $a->parentNode->insertBefore($button, $a->nextSibling); } echo $doc->saveHTML();
Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.13
<li id="" class="menu-item-has-children"> <a href="https://example.com">Parent Menu Item</a><button>Your button text</button> <!-- Add button HTML element here --> <ul class="sub-menu"> <!-- Child menu items --> </ul> </li>

preferences:
115.26 ms | 407 KiB | 5 Q