3v4l.org

run code in 300+ PHP versions simultaneously
<?php $html = <<<'HTML' <div class="wrapper"> <h2>This is a header</h2> <h2>This is one too</h2> <h4>Here's one</h4> <div class="ignore"> <h5>I'm one in here too</h5> </div> </div> HTML; $dom = new DOMDocument; $dom->loadHTML($html); $xp = new DOMXPath($dom); $nodeList = $xp->query(' //* [contains(";h1;h2;h3;h4;h5;h6;", concat(";", local-name(), ";"))] [not(ancestor::div[ contains(concat(" ", normalize-space(@class), " "), " ignore ") ]) ]'); foreach ($nodeList as $node) { echo 'tag name: ', $node->nodeName, PHP_EOL, 'html content: ', $dom->saveHTML($node), PHP_EOL, 'text content: ', $node->textContent, PHP_EOL, PHP_EOL; }
Output for 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.19, 8.3.0 - 8.3.4, 8.3.6 - 8.3.7
tag name: h2 html content: <h2>This is a header</h2> text content: This is a header tag name: h2 html content: <h2>This is one too</h2> text content: This is one too tag name: h4 html content: <h4>Here's one</h4> text content: Here's one
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 tag name: h2 html content: <h2>This is a header</h2> text content: This is a header tag name: h2 html content: <h2>This is one too</h2> text content: This is one too tag name: h4 html content: <h4>Here's one</h4> text content: Here's one

preferences:
112.43 ms | 402 KiB | 183 Q