3v4l.org

run code in 300+ PHP versions simultaneously
<?php $headers = <<<'HTML' <html> <h5>5 Header 0.0.0.0.1</h5> <h1>1 Header 1</h1> <h2>2 Header 1.1</h2> <h2>2 Header 1.2</h2> <h3>3 Header 1.2.1</h3> <h4>4 Header 1.2.2</h4> <h2>2 Header 1.3</h2> <h3>3 Header 1.3.1</h3> <h3>3 Header 1.3.2</h3> <h5>5 Header 1.3.2.1.1</h5> <h6>6 Header 1.3.2.1.1.1</h6> <h1>1 Header 2</h1> <h2>2 Header 2.1</h2> </html> HTML; $doc = new DomDocument(); $doc->loadHTML($headers); $xpath = new DOMXPath($doc); $otag = '<ul>'; $ctag = '</ul>'; $query = '//*[self::h1 or self::h2 or self::h3 or self::h4 or self::h5 or self::h6]'; $previousLevel = 1; $out[] = $otag; foreach ($xpath->query($query) as $headerElement) { $level = (int) $headerElement->nodeName[1]; if ($level < 1 || $level > 6) { $level = 1; continue; } if ($level > $previousLevel) { $out[] = str_repeat($otag, $level - $previousLevel); } elseif ($level < $previousLevel) { $out[] = str_repeat($ctag, $previousLevel - $level); } $out[] = '<li>' . $headerElement->textContent . '</li>'; $previousLevel = $level; } $out[] = str_repeat($ctag, $level); echo implode(PHP_EOL, $out);

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
8.4.140.0130.01117.74
8.4.130.0090.01218.03
8.4.120.0140.00524.33
8.4.110.0050.00522.64
8.4.100.0120.00919.11
8.4.90.0100.01020.84
8.4.80.0080.00719.19
8.4.70.0100.00418.53
8.4.60.0100.00119.09
8.4.50.0130.00819.86
8.4.40.0030.00618.31
8.4.30.0130.00719.11
8.4.20.0130.00718.33
8.4.10.0100.00024.09
8.3.270.0140.00616.79
8.3.260.0090.01116.86
8.3.250.0110.01019.18
8.3.240.0080.00617.61
8.3.230.0070.01216.82
8.3.220.0030.00519.41
8.3.210.0030.00517.02
8.3.200.0040.00516.91
8.3.190.0120.00817.07
8.3.180.0120.00716.86
8.3.170.0090.01019.46
8.3.160.0040.01516.94
8.3.150.0070.01117.68
8.3.140.0060.00319.23
8.3.130.0090.00618.90
8.3.120.0100.00719.58
8.3.110.0170.00320.94
8.3.100.0040.00424.06
8.3.90.0030.00626.77
8.3.80.0100.00017.97
8.3.70.0000.01517.11
8.3.60.0070.01417.00
8.3.50.0150.00616.97
8.3.40.0040.01120.33
8.3.30.0120.00319.17
8.3.20.0000.00724.18
8.3.10.0040.00424.66
8.3.00.0040.00426.16
8.2.290.0120.00720.77
8.2.280.0140.01018.99
8.2.270.0060.01219.28
8.2.260.0080.01117.59
8.2.250.0150.00316.91
8.2.240.0000.00920.98
8.2.230.0040.00422.58
8.2.220.0000.00937.54
8.2.210.0000.00826.77
8.2.200.0090.00016.75
8.2.190.0040.01118.90
8.2.180.0120.00318.67
8.2.170.0070.00719.29
8.2.160.0100.00322.96
8.2.150.0080.00025.66
8.2.140.0060.00324.66
8.2.130.0080.00026.16
8.2.120.0060.00321.31
8.2.110.0060.00322.77
8.2.100.0060.00320.72
8.2.50.0090.00418.10
8.1.330.0090.01022.23
8.1.320.0090.00716.65
8.1.310.0190.00017.13
8.1.300.0110.00619.81
8.1.290.0070.00330.84
8.1.280.0120.00925.92
8.1.270.0070.00724.66
8.1.260.0050.00326.35
8.1.250.0040.00428.09
8.1.240.0000.00919.35
8.1.230.0030.00718.95

preferences:
87.1 ms | 403 KiB | 5 Q