3v4l.org

run code in 300+ PHP versions simultaneously
<?php $html = ' <?xml version="1.0" standalone="yes"?> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> <html> <body> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut vitae ex a arcu tempus tincidunt ac non nulla. Aliquam erat volutpat. Mauris nunc ex, imperdi ▶ <figure class="image"> <img src="/storage/12/articles/pictures/body_1574785274232_0d61f8370cad1d412f80b84d143e1257.jpeg"/> <figcaption>caption zzzzz</figcaption> </figure> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut vitae ex a arcu tempus tincidunt ac non nulla. Aliquam erat volutpat. Mauris nunc ex, imperdi ▶ <p>&#xA0;</p> </body> </html> '; $dom_err = libxml_use_internal_errors(true); $dom = new \DOMDocument('1.0', 'utf-8'); $dom->loadHTML(mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8'), LIBXML_HTML_NOIMPLIED); $xpath = new \DOMXPath($dom); foreach ($xpath->query("//figure") as $img) { $p = $dom->createElement("p"); $p->setAttribute('style', 'text-align:center'); $img->parentNode->replaceChild($p, $img); $p->appendChild($img); } echo $dom->saveHTML();

preferences:
26.5 ms | 406 KiB | 5 Q