3v4l.org

run code in 300+ PHP versions simultaneously
<?php error_reporting(-1); mb_internal_encoding('utf-8'); $text = "много их в Петербурге,молоденьких дур,сегодня в атласе да бархате,а завтра , поглядишь , метут улицу вместе с голью кабацкою...в самом деле ,что было бы с нами ,если бы вместо общеудобного правила:чин чина почитай , ввелось в употребление другое,например:ум ума почитай?какие возникли бы споры!"; //$text = "ну что. не смотрел еще black mesa.я собирался скачать ,но все как-то некогда было."; // Для тестов //$text = "roses are red,and violets are blue.whatever you do i'll keep it for you."; //$text = "привет.есть 2 функции,preg_split и explode ,не понимаю,в чем между ними разница."; /* Делает первую букву в строке заглавной */ function makeFirstLetterUppercase($text) { $second = 1; $first = mb_substr($text, 0, $second); //проверяем, чтобы первый символ был не пробелом{ if ($first == ' '){ $second = 2; $first = mb_substr($text, 0, $second); } //} $other = mb_substr($text, $second); $first = mb_strtoupper($first); $text = $first . $other; return $text; } /* исправляет текст */ function fixText($text) { //$text = makeFirstLetterUppercase($text); //убрали лишние пробелы{ $regexp = '/ + /u'; $text = preg_replace($regexp, ' ', $text); //} //ставим пробел после знака препинания{ $regexp = '/([\\.,;:!\\?])(\w)/u'; $text = preg_replace($regexp, '$1 $2', $text); //} //убираем пробелы перед знаками препинания{ $regexp = '/(\w)( )([\\.,;:!\\?])/u'; $text = preg_replace($regexp, '$1$3', $text); //} //разбиваем исходный текст на предложения //и ставим заглавные буквы{ $regexp = '/(?<=[\\.!\\?])/u'; $parts = preg_split($regexp, $text, 0, PREG_SPLIT_NO_EMPTY); $text = ""; foreach ($parts as $part){ $text = $text . makeFirstLetterUppercase($part); } //} return $text; } $result = fixText($text); echo "{$result}\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.60.0140.00716.75
8.3.50.0140.00318.55
8.3.40.0150.00319.05
8.3.30.0150.00618.79
8.3.20.0000.00720.29
8.3.10.0030.00520.38
8.3.00.0040.00421.85
8.2.180.0180.00417.13
8.2.170.0150.00019.15
8.2.160.0100.00320.38
8.2.150.0040.00424.18
8.2.140.0040.00424.66
8.2.130.0030.00620.48
8.2.120.0030.00526.35
8.2.110.0030.00622.09
8.2.100.0120.00017.97
8.2.90.0030.00618.00
8.2.80.0030.00518.95
8.2.70.0070.00419.18
8.2.60.0060.00317.63
8.2.50.0040.00417.63
8.2.40.0080.00018.00
8.2.30.0000.00819.48
8.2.20.0050.00218.23
8.2.10.0000.00718.25
8.2.00.0040.00418.48
8.1.280.0180.00325.92
8.1.270.0040.00423.98
8.1.260.0040.00426.35
8.1.250.0040.00428.09
8.1.240.0030.00619.10
8.1.230.0060.00617.95
8.1.220.0050.00317.78
8.1.210.0040.00418.77
8.1.200.0040.00417.73
8.1.190.0080.00017.72
8.1.180.0030.00618.10
8.1.170.0040.00417.62
8.1.160.0030.00519.00
8.1.150.0000.00820.33
8.1.140.0040.00419.76
8.1.130.0040.00417.74
8.1.120.0030.00517.61
8.1.110.0080.00317.59
8.1.100.0040.00417.67
8.1.90.0040.00417.67
8.1.80.0040.00417.77
8.1.70.0040.00417.73
8.1.60.0000.00917.75
8.1.50.0000.00817.66
8.1.40.0030.00517.80
8.1.30.0000.00817.86
8.1.20.0080.00017.90
8.1.10.0050.00317.77
8.1.00.0080.00017.71
8.0.300.0030.00518.77
8.0.290.0030.00517.13
8.0.280.0000.00718.44
8.0.270.0080.00017.29
8.0.260.0040.00417.07
8.0.250.0000.00817.36
8.0.240.0050.00317.30
8.0.230.0000.00717.17
8.0.220.0030.00517.22
8.0.210.0030.00317.37
8.0.200.0030.00317.21
8.0.190.0040.00417.22
8.0.180.0000.00817.25
8.0.170.0040.00417.17
8.0.160.0000.00717.26
8.0.150.0040.00817.14
8.0.140.0000.00717.09
8.0.130.0030.00313.60
8.0.120.0000.00817.17
8.0.110.0000.00717.16
8.0.100.0070.00017.06
8.0.90.0000.00817.30
8.0.80.0100.00617.32
8.0.70.0040.00417.30
8.0.60.0080.00017.15
8.0.50.0040.00417.24
8.0.30.0120.00817.39
8.0.20.0090.01117.45
8.0.10.0040.00417.11
8.0.00.0120.00617.11
7.4.330.0030.00315.55
7.4.320.0000.00616.98
7.4.300.0000.00616.99
7.4.290.0000.00716.84
7.4.280.0090.00016.86
7.4.270.0000.00716.98
7.4.260.0070.00016.78
7.4.250.0030.00316.84
7.4.240.0000.00716.95
7.4.230.0030.00317.08
7.4.220.0110.01116.93
7.4.210.0110.00517.08
7.4.200.0070.00016.73
7.4.160.0060.01516.91
7.4.150.0050.01417.40
7.4.140.0090.01117.86
7.4.130.0080.01016.75
7.4.120.0120.00816.95
7.4.110.0080.01216.85
7.4.100.0070.01116.96
7.4.90.0060.01216.91
7.4.80.0110.00619.39
7.4.70.0120.00617.04
7.4.60.0070.01016.85
7.4.50.0070.01016.80
7.4.40.0040.01316.77
7.4.30.0160.00716.82
7.4.00.0140.00315.18
7.3.330.0030.00313.51
7.3.320.0050.00013.76
7.3.310.0050.00216.56
7.3.300.0040.00416.59
7.3.290.0030.01116.65
7.3.280.0030.01316.75
7.3.270.0180.00617.40
7.3.260.0060.01216.77
7.3.250.0120.00716.83
7.3.240.0110.00716.90
7.3.230.0100.00716.64
7.3.210.0080.00816.94
7.3.200.0100.00616.77
7.3.190.0140.00316.67
7.3.180.0070.01516.70
7.3.170.0140.00716.89
7.3.160.0090.00616.66
7.2.330.0110.00816.88
7.2.320.0120.00616.80
7.2.310.0080.01516.96
7.2.300.0120.01216.82
7.2.290.0070.01017.00
7.2.60.0000.01217.11
7.1.200.0040.01116.23
7.1.70.0080.00817.51
7.1.60.0150.00517.67
7.1.50.0070.01017.34
7.1.40.0100.01316.98
7.1.30.0080.00816.93
7.1.20.0140.00316.97
7.1.10.0050.01116.82
7.1.00.0000.00916.94
7.0.200.0040.01216.83
7.0.190.0060.00916.63
7.0.180.0030.01316.43
7.0.170.0080.00816.43
7.0.160.0100.00716.48
7.0.150.0120.00916.52
7.0.140.0110.00316.68
7.0.130.0060.00916.66
7.0.120.0070.00516.85
7.0.110.0040.01816.75
7.0.100.0030.01416.55
7.0.90.0060.00616.73
7.0.80.0150.00216.61
7.0.70.0040.00816.54
7.0.60.0060.00616.43
7.0.50.0120.00616.66
7.0.40.0000.01716.43
7.0.30.0090.00516.43
7.0.20.0100.00516.43
7.0.10.0090.00516.43
7.0.00.0000.00816.43

preferences:
33.71 ms | 400 KiB | 5 Q