3v4l.org

run code in 300+ PHP versions simultaneously
<?php $html = <<<HTML <body> <div>foo</div> <shortcode type="content" /> <div>bar</div> </body> HTML; $replace = <<<HTML <div>content</div> HTML; $dom = new DOMDocument(); libxml_use_internal_errors(true); $dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD); echo $dom->saveHTML($dom->documentElement); echo PHP_EOL, '---------------------------', PHP_EOL; $xpath = new DOMXPath($dom); $nodes = $xpath->query('//shortcode'); foreach($nodes as $node) { $newHTML = $dom->createDocumentFragment(); $newHTML->appendXML($replace); $node->parentNode->insertBefore($newHTML, $node); $node->parentNode->removeChild($node); } echo $dom->saveHTML($dom->documentElement);

preferences:
36.51 ms | 402 KiB | 5 Q