3v4l.org

run code in 500+ PHP versions simultaneously
<?php $html = <<<HTML <!DOCTYPE HTML> <html> <span class="unwrap_me"><i><span class="foo">Lorem</span></i><span class="foo">ipsum</span></span> </html> HTML; $dom = new DOMDocument(); $dom->loadHTML($html); $spans = iterator_to_array($dom->getElementsByTagName('span')->getIterator()); foreach ($spans as $span) { if ('unwrap_me' === $span->getAttribute('class')) { $fragment = $dom->createDocumentFragment(); $fragment->append(...$span->childNodes); $span->parentNode?->replaceChild($fragment, $span); } }
Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.18, 8.1.21 - 8.1.34, 8.2.0 - 8.2.5, 8.2.8 - 8.2.31, 8.3.0 - 8.3.31, 8.4.1 - 8.4.22, 8.5.0 - 8.5.7
Output for 8.1.19 - 8.1.20, 8.2.6 - 8.2.7
Fatal error: Uncaught Error: Couldn't fetch DOMElement in /in/iPl83:15 Stack trace: #0 /in/iPl83(15): DOMElement->getAttribute('class') #1 {main} thrown in /in/iPl83 on line 15
Process exited with code 255.

preferences:
100.72 ms | 1118 KiB | 4 Q