3v4l.org

run code in 300+ PHP versions simultaneously
<?php $html = '<div><img src="http://x.com" /><span>xyz</span><a href="http://example.com"><img src="http://example.com" /></a></div>'; $doc = new DOMDocument(); $doc->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD); $xpath = new DOMXpath($doc); $images = $xpath->query('//img'); foreach ($images as $image) { $div = $doc->createElement('div'); $div->setAttribute('class', 'demo'); $image->parentNode->replaceChild($div, $image); $div->appendChild($image); } echo $doc->saveHTML();
Output for 5.6.38, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.27, 8.4.1 - 8.4.14
<div><div class="demo"><img src="http://x.com"></div><span>xyz</span><a href="http://example.com"><div class="demo"><img src="http://example.com"></div></a></div>

preferences:
205.41 ms | 408 KiB | 5 Q