3v4l.org

run code in 300+ PHP versions simultaneously
<?php //+ Jonas Raoni Soares Silva //@ http://jsfromhell.com function AbstractHTMLContents($html, $maxLength=100){ mb_internal_encoding("UTF-8"); $printedLength = 0; $position = 0; $tags = array(); $newContent = ''; $html = $content = preg_replace("/<img[^>]+\>/i", "", $html); while ($printedLength < $maxLength && preg_match('{</?([a-z]+)[^>]*>|&#?[a-zA-Z0-9]+;}', $html, $match, PREG_OFFSET_CAPTURE, $position)) { list($tag, $tagPosition) = $match[0]; // Print text leading up to the tag. $str = mb_strcut($html, $position, $tagPosition - $position); if ($printedLength + mb_strlen($str) > $maxLength){ $newstr = mb_strcut($str, 0, $maxLength - $printedLength); $newstr = preg_replace('~\s+\S+$~', '', $newstr); $newContent .= $newstr; $printedLength = $maxLength; break; } $newContent .= $str; $printedLength += mb_strlen($str); if ($tag[0] == '&') { // Handle the entity. $newContent .= $tag; $printedLength++; } else { // Handle the tag. $tagName = $match[1][0]; if ($tag[1] == '/') { // This is a closing tag. $openingTag = array_pop($tags); assert($openingTag == $tagName); // check that tags are properly nested. $newContent .= $tag; } else if ($tag[mb_strlen($tag) - 2] == '/'){ // Self-closing tag. $newContent .= $tag; } else { // Opening tag. $newContent .= $tag; $tags[] = $tagName; } } // Continue after the tag. $position = $tagPosition + mb_strlen($tag); } // Print any remaining text. if ($printedLength < $maxLength && $position < mb_strlen($html)) { $newstr = mb_strcut($html, $position, $maxLength - $printedLength); $newstr = preg_replace('~\s+\S+$~', '', $newstr); $newContent .= $newstr; } // Close any open tags. while (!empty($tags)) { $newContent .= sprintf('</%s>', array_pop($tags)); } return $newContent; } $sText = '<p>Ключевым элементом в области снижения влияния объектов производства на водные ресурсы является уменьшение забора воды и качество <i>очистительных</i> процедур.</p> <p>Для <strong>этих</strong> целей Группа «Газпром» проводит организационно-технические мероприятия, <img src="http://osb.loc/images/logo.jpg" alt="test" text> в частности по установке средств измерения расхода воды, а также установке и наладке запорно-затворной арматуры на своих предприятиях, что способствует существенной экономии водных ресурсов.</p> <p>Повышение эффективности действующих очистных сооружений и внедрение новых технологий очистки стоков позволяет обеспечить нормативное качество очистки сточных вод. Общая мощность очистных сооружений «Газпрома» в 2010 г. составила 153,263 млн куб. м. Половина нормативно очищенных стоков прошла очистку на сооружениях биологической очистки, 39% — механической очистки, 12% — физико-химической очистки сточных вод.</p>'; //echo String::truncate( $sText, 150, ' ...'); //jo<... //echo "\n\n\n"; echo AbstractHTMLContents( $sText, 100, ' ...', true); //jo<i><b>n</b></i>... //echo "\n\n\n"; //echo String::truncate( $sText, 150, ' ...', false); //jo<i><b>n...

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.3.70.0130.01018.68
8.3.60.0060.01316.88
8.3.50.0100.01122.22
8.3.40.0150.00319.27
8.3.30.0170.00019.23
8.3.20.0000.00820.42
8.3.10.0050.00323.50
8.3.00.0000.00919.73
8.2.180.0120.00916.63
8.2.170.0120.00322.96
8.2.160.0120.00320.64
8.2.150.0030.00524.18
8.2.140.0060.00324.66
8.2.130.0130.00726.16
8.2.120.0050.00521.14
8.2.110.0090.00021.10
8.2.100.0080.00418.39
8.2.90.0070.00218.00
8.2.80.0000.00818.00
8.2.70.0000.00818.05
8.2.60.0050.00518.29
8.2.50.0000.00918.10
8.2.40.0080.00020.60
8.2.30.0000.00718.33
8.2.20.0000.00818.06
8.2.10.0060.00318.14
8.2.00.0040.00418.03
8.1.280.0120.00625.92
8.1.270.0000.00822.14
8.1.260.0000.00826.35
8.1.250.0000.00828.09
8.1.240.0000.00921.01
8.1.230.0060.00919.07
8.1.220.0060.00317.79
8.1.210.0030.00618.77
8.1.200.0030.00617.48
8.1.190.0030.00617.35
8.1.180.0040.00418.10
8.1.170.0040.00418.83
8.1.160.0000.00822.03
8.1.150.0000.00718.76
8.1.140.0040.00417.55
8.1.130.0000.00717.92
8.1.120.0020.00517.71
8.1.110.0050.00317.62
8.1.100.0040.00417.57
8.1.90.0000.00717.70
8.1.80.0040.00417.59
8.1.70.0070.00017.64
8.1.60.0030.00617.86
8.1.50.0040.00417.70
8.1.40.0000.00917.86
8.1.30.0000.00817.91
8.1.20.0040.00417.88
8.1.10.0040.00417.84
8.1.00.0000.00917.70
8.0.300.0100.00019.88
8.0.290.0000.00816.84
8.0.280.0000.00718.56
8.0.270.0040.00317.49
8.0.260.0050.00318.68
8.0.250.0000.00717.25
8.0.240.0030.00317.22
8.0.230.0000.00717.25
8.0.220.0000.00717.14
8.0.210.0000.00717.13
8.0.200.0060.00017.15
8.0.190.0040.00417.21
8.0.180.0040.00417.14
8.0.170.0040.00417.13
8.0.160.0050.00217.04
8.0.150.0040.00417.18
8.0.140.0000.00717.06
8.0.130.0000.00613.62
8.0.120.0080.00017.11
8.0.110.0000.00717.01
8.0.100.0050.00217.01
8.0.90.0040.00417.13
8.0.80.0060.01617.21
8.0.70.0040.00417.20
8.0.60.0000.00717.04
8.0.50.0000.00817.04
8.0.30.0130.01017.26
8.0.20.0120.01017.40
8.0.10.0000.00817.10
8.0.00.0130.00617.18
7.4.330.0000.00515.04
7.4.320.0030.00316.91
7.4.300.0000.00716.89
7.4.290.0000.00716.72
7.4.280.0000.00716.76
7.4.270.0040.00416.93
7.4.260.0040.00416.70
7.4.250.0050.00316.84
7.4.240.0060.00116.77
7.4.230.0000.00816.89
7.4.220.0160.01016.92
7.4.210.0120.00316.93
7.4.200.0000.00716.88
7.4.160.0080.00816.93
7.4.150.0130.01017.40
7.4.140.0080.01017.86
7.4.130.0090.00816.78
7.4.120.0090.00816.93
7.4.110.0000.01716.78
7.4.100.0110.00716.83
7.4.90.0030.01416.78
7.4.80.0100.01019.39
7.4.70.0040.01216.77
7.4.60.0060.01316.83
7.4.50.0000.00816.89
7.4.40.0130.00316.79
7.4.30.0030.01316.76
7.4.00.0080.00715.38
7.3.330.0000.00613.45
7.3.320.0030.00313.38
7.3.310.0030.00316.76
7.3.300.0030.00316.61
7.3.290.0070.00716.69
7.3.280.0120.00816.64
7.3.270.0140.00417.40
7.3.260.0130.00916.65
7.3.250.0130.01216.84
7.3.240.0160.01016.65
7.3.230.0110.00616.93
7.3.210.0070.01016.75
7.3.200.0150.00619.39
7.3.190.0090.00916.93
7.3.180.0060.01016.69
7.3.170.0090.00616.91
7.3.160.0110.00516.75
7.3.120.0060.00915.17
7.3.110.0070.01115.31
7.3.100.0030.00615.36
7.3.90.0070.01015.07
7.3.80.0080.00414.87
7.3.70.0090.00615.20
7.3.60.0030.00614.91
7.3.50.0040.00715.25
7.3.40.0040.00415.07
7.3.30.0030.00915.11
7.3.20.0070.01016.96
7.3.10.0070.00716.79
7.3.00.0070.00616.86
7.2.330.0100.01316.93
7.2.320.0100.00716.89
7.2.310.0090.01216.98
7.2.300.0090.01216.82
7.2.290.0050.01117.07
7.2.250.0100.01015.54
7.2.240.0140.00715.34
7.2.230.0040.01215.48
7.2.220.0040.01515.36
7.2.210.0070.00315.37
7.2.200.0070.00715.51
7.2.190.0120.00415.28
7.2.180.0070.00714.95
7.2.170.0030.01015.29
7.2.130.0110.00817.01
7.2.120.0090.00616.81
7.2.110.0150.00016.89
7.2.100.0160.00317.20
7.2.90.0040.01517.29
7.2.80.0120.00616.91
7.2.70.0090.00916.93
7.2.60.0020.01117.15
7.2.50.0160.00316.95
7.2.40.0150.00817.08
7.2.30.0190.00417.00
7.2.20.0110.01117.14
7.2.10.0120.01017.07
7.2.00.0110.01117.19
7.1.330.0040.01216.00
7.1.320.0000.01815.85
7.1.310.0030.00916.16
7.1.300.0040.00715.91
7.1.290.0090.00316.04
7.1.280.0000.00916.09
7.1.270.0030.01016.16
7.1.260.0060.00315.86
7.1.250.0060.00915.96
7.1.240.0140.00416.09
7.1.230.0070.00715.93
7.1.220.0150.00015.83
7.1.210.0080.00516.02
7.1.200.0110.00515.88
7.1.190.0090.00615.93
7.1.180.0120.00615.70
7.1.170.0120.00615.84
7.1.160.0090.00915.85
7.1.150.0110.00715.62
7.1.140.0120.00815.79
7.1.130.0090.00916.04
7.1.120.0070.01116.03
7.1.110.0130.00916.11
7.1.100.0100.00617.19
7.1.90.0040.01216.02
7.1.80.0120.00415.92
7.1.70.0070.00916.50
7.1.60.0120.00717.83
7.1.50.0150.00516.51
7.1.40.0170.00715.93
7.1.30.0110.00715.70
7.1.20.0100.01015.93
7.1.10.0100.01015.60
7.1.00.0050.04319.21
7.0.330.0070.00715.29
7.0.320.0120.00615.61
7.0.310.0100.00615.46
7.0.300.0100.00715.55
7.0.290.0140.00315.17
7.0.280.0070.01115.35
7.0.270.0070.01015.56
7.0.260.0100.01015.20
7.0.250.0070.01115.67
7.0.240.0110.00715.55
7.0.230.0150.00415.44
7.0.220.0100.01015.52
7.0.210.0070.01015.57
7.0.200.0080.00616.02
7.0.190.0090.00915.43
7.0.180.0040.01415.26
7.0.170.0110.01115.33
7.0.160.0180.00315.45
7.0.150.0150.00315.32
7.0.140.0100.04018.79
7.0.130.0070.01015.50
7.0.120.0070.01015.55
7.0.110.0080.01115.54
7.0.100.0140.00715.41
7.0.90.0080.00415.49
7.0.80.0070.01015.13
7.0.70.0080.00815.38
7.0.60.0090.03117.73
7.0.50.0090.02816.67
7.0.40.0070.02716.85
7.0.30.0130.02616.77
7.0.20.0200.03116.75
7.0.10.0070.04616.84
7.0.00.0090.02516.80
5.6.380.0090.00614.73
5.6.370.0030.01014.55
5.6.360.0120.00314.33
5.6.350.0110.00314.11
5.6.340.0130.00614.65
5.6.330.0160.00814.20
5.6.320.0040.01214.83
5.6.310.0130.00314.80
5.6.300.0030.01314.25
5.6.290.0030.01614.30
5.6.280.0060.04017.67
5.6.270.0060.00814.44
5.6.260.0030.00914.45
5.6.250.0100.00714.61
5.6.240.0050.00914.51
5.6.230.0000.01614.30
5.6.220.0110.00314.45
5.6.210.0050.04617.50
5.6.200.0060.02616.26
5.6.190.0120.04517.45
5.6.180.1180.02917.43
5.6.170.0220.03517.58
5.6.160.0060.02817.51
5.6.150.0060.02816.17
5.6.140.0100.03216.24
5.6.130.0090.03616.42
5.6.120.0070.02317.63
5.6.110.0090.03917.73
5.6.100.0030.04517.70
5.6.90.0030.02617.63
5.6.80.0060.02417.40
5.6.70.2090.02517.55
5.6.60.0070.01014.11
5.6.50.0000.01714.38
5.6.40.0070.00714.28
5.6.30.0060.00914.64
5.6.20.0100.00714.56
5.6.10.0090.00614.29
5.6.00.0080.00414.71
5.5.380.0080.00411.10
5.5.370.0070.01011.55
5.5.360.0040.00410.92
5.5.350.0040.03615.89
5.5.340.0030.02114.69
5.5.330.0050.04515.88
5.5.320.0130.04215.76
5.5.310.0150.02315.93
5.5.300.0030.03514.60
5.5.290.0070.04114.55
5.5.280.0060.04116.17
5.5.270.0020.03616.07
5.5.260.0080.04516.05
5.5.250.0030.04615.73
5.5.240.0150.03715.74
5.5.230.0070.00710.94
5.5.220.0070.00711.20
5.5.210.0030.00911.21
5.5.200.0090.00311.30
5.5.190.0060.00611.01
5.5.180.0080.00411.40
5.5.170.0080.00011.06
5.5.160.0030.00811.23
5.5.150.0110.00311.40
5.5.140.0040.00811.10
5.5.130.0000.01211.02
5.5.120.0050.00811.15
5.5.110.0110.00311.51
5.5.100.0120.00011.27
5.5.90.0090.00311.42
5.5.80.0090.00011.17
5.5.70.0050.00511.18
5.5.60.0060.00311.42
5.5.50.0050.00511.12
5.5.40.0030.00610.96
5.5.30.0120.00011.46
5.5.20.0090.00311.41
5.5.10.0000.00911.38
5.5.00.0050.00811.25
5.4.450.0180.02627.61
5.4.440.0240.02627.40
5.4.430.0370.02427.36
5.4.420.0290.02227.33
5.4.410.0220.02927.33
5.4.400.0120.02527.45
5.4.390.0170.02327.46
5.4.380.0100.03014.91
5.4.370.0150.02314.80
5.4.360.0110.02714.87
5.4.350.0030.03414.88
5.4.340.0110.02714.86
5.4.330.0050.00311.13
5.4.320.0050.02511.84
5.4.310.0080.02311.75
5.4.300.0050.02211.83
5.4.290.0020.02611.82
5.4.280.0080.02211.82
5.4.270.0030.02711.75
5.4.260.0060.02311.73
5.4.250.0050.02211.72
5.4.240.0060.02311.77
5.4.230.0070.02211.71
5.4.220.0050.02211.83
5.4.210.0080.01811.74
5.4.200.0040.02411.91
5.4.190.0060.02111.70
5.4.180.0070.02211.82
5.4.170.0060.02311.89
5.4.160.0070.02311.85
5.4.150.0060.02311.77
5.4.140.0090.02011.79
5.4.130.0050.02211.77
5.4.120.0100.01811.44
5.4.110.0070.01911.50
5.4.100.0070.01911.61
5.4.90.0090.01811.74
5.4.80.0060.02511.42
5.4.70.0060.02711.55
5.4.60.0040.02311.61
5.4.50.0050.02111.65
5.4.40.0060.02011.58
5.4.30.0060.02111.56
5.4.20.0110.02011.43
5.4.10.0040.02211.66
5.4.00.0070.01811.10
5.3.290.0040.02211.83
5.3.280.0050.02111.67
5.3.270.0050.02311.61
5.3.260.0020.02511.72
5.3.250.0020.02311.79
5.3.240.0050.02611.71
5.3.230.0040.02311.60
5.3.220.0050.02511.63
5.3.210.0040.02411.70
5.3.200.0060.02211.71
5.3.190.0100.01911.69
5.3.180.0090.01911.75
5.3.170.0050.02311.72
5.3.160.0050.02111.75
5.3.150.0060.02211.63
5.3.140.0040.02711.63
5.3.130.0040.02811.72
5.3.120.0040.02511.69
5.3.110.0050.02811.66
5.3.100.0070.02111.43
5.3.90.0040.02311.38
5.3.80.0030.02711.35
5.3.70.0060.02111.34
5.3.60.0060.02311.43
5.3.50.0050.02311.34
5.3.40.0070.02411.27
5.3.30.0090.02211.36
5.3.20.0060.02211.09
5.3.10.0080.01811.17
5.3.00.0050.02211.03
5.2.170.0050.0199.75
5.2.160.0050.0169.75
5.2.150.0060.0179.75
5.2.140.0060.0189.75
5.2.130.0070.0229.73
5.2.120.0030.0199.73
5.2.110.0090.0169.74
5.2.100.0010.0209.73
5.2.90.0040.0189.73
5.2.80.0040.0199.73
5.2.70.0050.0179.73
5.2.60.0050.0189.71
5.2.50.0030.0199.69
5.2.40.0050.0169.68
5.2.30.0030.0189.67
5.2.20.0050.0179.67
5.2.10.0060.0189.61
5.2.00.0060.0159.54
5.1.60.0020.0179.18
5.1.50.0050.0139.18
5.1.40.0060.0149.17
5.1.30.0050.0169.35
5.1.20.0030.0189.36
5.1.10.0040.0169.22
5.1.00.0050.0149.22
5.0.50.0050.0108.46
5.0.40.0050.0158.39
5.0.30.0040.0188.30
5.0.20.0010.0158.29
5.0.10.0020.0138.27
5.0.00.0040.0198.27
4.4.90.0040.0117.52
4.4.80.0020.0107.51
4.4.70.0020.0117.51
4.4.60.0040.0127.50
4.4.50.0020.0137.51
4.4.40.0030.0157.48
4.4.30.0050.0107.51
4.4.20.0040.0077.55
4.4.10.0040.0077.55
4.4.00.0030.0147.51
4.3.110.0020.0107.46
4.3.100.0010.0107.46
4.3.90.0020.0107.44
4.3.80.0020.0147.42
4.3.70.0010.0107.44
4.3.60.0020.0107.44
4.3.50.0030.0127.44
4.3.40.0010.0167.39
4.3.30.0040.0106.80
4.3.20.0030.0116.79
4.3.10.0020.0106.76
4.3.00.0020.01227.02

preferences:
43.64 ms | 401 KiB | 5 Q