3v4l.org

run code in 300+ PHP versions simultaneously
<?php // eliminar esta etiqueta usando expresiones regulares php // https://es.stackoverflow.com/q/131277/127 $html = ' <p><figure><img src="xxxx"></figure></p> <p> <figure> <img src="2222"> </figure> </p>'; //Generar el DOM $dom = new DOMDocument; $libxml_opciones = LIBXML_COMPACT | LIBXML_HTML_NODEFDTD | LIBXML_NONET | LIBXML_NOERROR; @$dom->loadHTML($html, $libxml_opciones); //Generar un XPath para búsquedas $xpath = new DOMXpath($dom); //Obtener todos los tags <p> $p_nodelist = $dom->getElementsByTagName('p'); //Bucle para cada <p> (en orden inverso para preservar la estructura) for ($i = $p_nodelist->length; --$i >= 0; ) { $p = $p_nodelist->item($i); $p_hijos = $xpath->query('./*',$p); //Si el <p> tiene un único hijo, y ese hijo es un <figure> if ($p_hijos->length == 1 && $p_hijos->item(0)->tagName == 'figure') { $figure = $p_hijos->item(0); //Si el <figure> tiene un único hijo, y ese hijo es una <img> $figure_hijos = $xpath->query('./*',$figure); if ($figure_hijos->length == 1 && $figure_hijos->item(0)->tagName == 'img') { //REEMPLAZAR todo el <p> por solamente el <figure> $p->parentNode->replaceChild($figure,$p); } } } //Guardar el html $resultado = ''; foreach ($dom->documentElement->lastChild->childNodes as $elem) { $resultado .= $dom->saveHTML($elem); } //Imprimir el resultado echo $resultado;
Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 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.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
<figure><img src="xxxx"></figure> <figure> <img src="2222"> </figure>
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 <figure><img src="xxxx"></figure> <figure> <img src="2222"> </figure>

preferences:
233.15 ms | 402 KiB | 290 Q