3v4l.org

run code in 300+ PHP versions simultaneously
<?php $html = <<<HTML <body> <a href="page4.php">Page 4</a> <a href="page3.php">Page 3</a> <div class="red">stuff</div> <div class="blue">stuff</div> </body> HTML; $dom = new DOMDocument; $dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD); $counter = 0; foreach ($dom->getElementsByTagName("a") as $a) { ++$counter; $comment = new DOMComment(" UNIT $counter "); $a->parentNode->insertBefore($comment, $a); $a->setAttribute('id', "a_$counter"); } $counter = 0; foreach ($dom->getElementsByTagName("div") as $b) { ++$counter; $b->setAttribute('id', "b_$counter"); } echo substr($dom->saveHTML(), 7, -9);
Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
<!-- UNIT 1 --><a href="page4.php" id="a_1">Page 4</a> <!-- UNIT 2 --><a href="page3.php" id="a_2">Page 3</a> <div class="red" id="b_1">stuff</div> <div class="blue" id="b_2">stuff</div>

preferences:
89.44 ms | 407 KiB | 5 Q