3v4l.org

run code in 300+ PHP versions simultaneously
<?php function b62e($str) { if(mb_check_encoding($str, 'ASCII')) { $out = ''; $len = strlen($str); for($i=0; $i<$len; $i+=8) { $chunk = substr($str, $i, 8); $outlen = ceil( strlen($chunk)*8/6 );// 8bit/char in, 6bits/char out, round up $hex = bin2hex($chunk);// gmp won't convert from binary, so go via hex $raw = gmp_strval(gmp_init(ltrim($hex, '0'), 16), 62);// gmp doesn't like leading 0s $out .= str_pad($raw, $outlen, '0', STR_PAD_LEFT); } return $out; } return false;// unicode chars not supported } function b62d($str) { if(mb_check_encoding($str, 'ASCII')) { $out = ''; $len = strlen($str); for ($i=0; $i<$len; $i+=11) { $chunk = substr($str, $i, 11); $outlen = floor( strlen($chunk)*6/8 ); //6bit/char in, 8bits/char out, round down $raw = gmp_strval(gmp_init(ltrim($chunk, '0'), 62), 16); //gmp doesn't like leading 0s $pad = str_pad($raw, $outlen * 2, '0', STR_PAD_LEFT); //double output length as as we're going via hex (4bits/char) $out .= pack('H*', $pad); //same as hex2bin } return $out; } return false;// unicode chars not supported } function obf62rep($which){// make array before translate string $rep = []; $str1 = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $str2 = 'GHIJKLMNqrstuvwx01OPQRSTUVWXYZhijklmnop23456789abcdefgyzABCDEF'; if($which){// while obfuscate from-->to $fr = str_split($str1); $to = $str2; }else{// while de-obfuscate to-->from $fr = str_split($str2); $to = $str1; } foreach($fr as $k=>$v){// make array tr-->to $rep[$v] = $to[$k]; } return $rep; } function obf62e($str){return strtr($str, obf62rep(1));}// translate string = obfuscate function obf62d($str){return strtr($str, obf62rep(0));}// translate back = deobfuscate function ob62e($str){return obf62e(b62e($str));}// encode base62 + obfuscate function ob62d($str){return b62d(obf62d($str));}// decode base62 + deobfuscate define('TAB',"\t--->\t"); for($i=0; $i<17; $i++){ $encoded = b62e($i); $encoded_obf= obf62e($encoded); $decoded_obf= obf62d($encoded_obf); $decoded = b62d($decoded_obf); echo $i.TAB.$encoded.TAB.$encoded_obf.TAB.$decoded_obf.TAB.$decoded.PHP_EOL; } //

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.0110.01117.78
8.4.130.0070.00218.06
8.4.120.0140.00721.02
8.4.110.0150.00622.50
8.4.100.0100.01117.79
8.4.90.0120.01018.27
8.4.80.0070.00217.93
8.4.70.0130.00718.10
8.4.60.0100.01218.91
8.4.50.0080.00919.91
8.4.40.0100.01019.74
8.4.30.0110.01120.93
8.4.20.0130.00919.67
8.4.10.0060.00319.91
8.3.270.0150.00616.81
8.3.260.0060.00316.86
8.3.250.0110.00819.15
8.3.240.0050.00416.92
8.3.230.0130.00716.91
8.3.220.0140.00617.49
8.3.210.0100.00916.73
8.3.200.0120.00916.94
8.3.190.0050.00319.16
8.3.180.0050.00318.82
8.3.170.0100.01019.27
8.3.160.0080.00016.65
8.3.150.0130.00620.98
8.3.140.0120.00616.91
8.3.130.0040.00418.56
8.3.120.0060.01019.04
8.3.110.0090.00320.94
8.3.100.0090.00024.06
8.3.90.0090.00026.77
8.3.80.0050.00516.88
8.3.70.0130.00616.88
8.3.60.0090.00916.63
8.3.50.0080.01323.69
8.3.40.0170.00022.14
8.3.30.0110.00419.05
8.3.20.0040.00424.18
8.3.10.0060.00324.66
8.3.00.0080.00426.16
8.2.290.0050.00620.69
8.2.280.0110.00518.63
8.2.270.0100.01017.64
8.2.260.0090.00020.31
8.2.250.0060.00917.20
8.2.240.0130.00717.67
8.2.230.0030.00622.58
8.2.220.0110.01137.54
8.2.210.0000.00826.77
8.2.200.0060.00316.88
8.2.190.0100.01016.75
8.2.180.0110.01125.92
8.2.170.0070.00719.07
8.2.160.0100.00322.96
8.2.150.0050.00325.66
8.2.140.0060.00324.66
8.2.130.0040.00426.16
8.2.120.0000.00820.14
8.2.110.0000.01022.69
8.2.100.0040.00818.16
8.2.90.0080.00018.12
8.2.80.0070.00319.11
8.2.70.0000.00817.88
8.2.60.0060.00318.00
8.2.50.0060.00618.05
8.2.40.0050.00320.32
8.2.30.0000.00818.49
8.2.20.0040.00418.52
8.2.10.0080.00019.65
8.2.00.0040.00419.71
8.1.330.0130.00717.16
8.1.320.0120.00716.41
8.1.310.0000.00816.94
8.1.300.0100.00619.81
8.1.290.0050.00518.88
8.1.280.0100.01325.92
8.1.270.0000.00823.99
8.1.260.0080.00026.35
8.1.250.0090.00628.09
8.1.240.0070.00419.31
8.1.230.0070.00421.13
8.1.220.0030.00517.74
8.1.210.0080.00018.77
8.1.200.0030.00617.73
8.1.190.0090.00017.73
8.1.180.0050.00318.10
8.1.170.0000.00918.97
8.1.160.0050.00319.18
8.1.150.0040.00419.16
8.1.140.0090.00020.96
8.1.130.0000.00720.41
8.1.120.0090.00017.89
8.1.110.0040.00417.72
8.1.100.0060.00317.84
8.1.90.0090.00017.78
8.1.80.0000.01017.84
8.1.70.0000.00717.78
8.1.60.0000.00918.00
8.1.50.0030.00517.78
8.1.40.0050.00317.75
8.1.30.0000.00818.05
8.1.20.0030.00617.98
8.1.10.0100.00017.83
8.1.00.0030.00517.83
8.0.300.0030.00618.77
8.0.290.0030.00517.00
8.0.280.0040.00418.75
8.0.270.0030.00318.40
8.0.260.0030.00318.81
8.0.250.0000.00717.30
8.0.240.0040.00417.21
8.0.230.0000.00917.28
8.0.220.0000.00717.14
8.0.210.0000.00717.29
8.0.200.0000.00717.28
8.0.190.0030.00517.29
8.0.180.0080.00317.20
8.0.170.0090.00017.19
8.0.160.0040.00417.18
8.0.150.0000.00817.16
8.0.140.0000.00717.09
8.0.130.0040.00413.46
8.0.120.0040.00417.16
8.0.110.0030.00617.23
8.0.100.0050.00317.34
8.0.90.0000.00717.05
8.0.80.0070.01017.21
8.0.70.0000.00817.08
8.0.60.0000.00817.18
8.0.50.0050.00317.13
8.0.30.0080.01217.63
8.0.20.0100.01117.26
8.0.10.0040.00417.33
8.0.00.0150.00317.07
7.4.330.0050.00015.55
7.4.320.0060.00016.87
7.4.300.0000.00816.84
7.4.290.0040.00416.82
7.4.280.0050.00716.90
7.4.270.0080.00016.77
7.4.260.0030.00313.32
7.4.250.0080.00016.66
7.4.240.0040.00416.74
7.4.230.0040.00416.86
7.4.220.0020.00516.84
7.4.210.0080.00816.86
7.4.200.0040.00416.93
7.4.130.0160.00616.81
7.4.120.0100.01016.59
7.4.110.0060.01716.58
7.4.100.0130.01316.43
7.4.90.0110.01616.43
7.4.80.0080.02316.48
7.4.70.0160.01216.43
7.4.60.0160.01416.35
7.4.50.0130.00916.59
7.4.40.0150.00916.68
7.4.30.0120.00916.67
7.4.20.0080.01216.65
7.4.10.0170.00716.66
7.4.00.0130.01716.63
7.3.330.0070.00516.50
7.3.320.0050.00013.53
7.3.310.0030.00516.48
7.3.300.0030.00316.58
7.3.290.0080.01016.63
7.3.260.0070.01116.99
7.3.240.0060.01916.55
7.3.230.0070.01316.66
7.3.220.0070.02016.49
7.3.210.0160.00716.38
7.3.200.0140.01416.75
7.3.190.0110.01416.38
7.3.180.0160.01016.59
7.3.170.0100.01616.54
7.3.160.0130.01116.51
7.3.150.0120.01316.51
7.3.140.0060.01616.81
7.3.130.0060.01816.80
7.3.120.0120.00916.50
7.3.110.0100.01016.57
7.3.100.0070.01016.50
7.3.90.0040.01716.67
7.3.80.0160.00516.58
7.3.70.0050.01416.52
7.3.60.0200.00316.57
7.3.50.0060.01216.62
7.3.40.0040.01816.60
7.3.30.0090.01016.52
7.3.20.0130.00816.61
7.3.10.0090.01616.86
7.3.00.0090.00916.79
7.2.340.0130.00716.93
7.2.330.0090.01816.74
7.2.320.0090.01916.95
7.2.310.0170.01116.75
7.2.300.0130.01016.75
7.2.290.0120.01517.02
7.2.280.0060.01817.12
7.2.270.0060.01316.91
7.2.260.0150.00616.64
7.2.250.0100.01016.74
7.2.240.0200.00817.03
7.2.230.0110.01516.82
7.2.220.0100.01016.68
7.2.210.0180.00916.68
7.2.200.0080.01616.93
7.2.190.0040.01716.82
7.2.180.0060.01616.74
7.2.170.0150.00617.00
7.2.160.0120.00816.81
7.2.150.0030.01516.97
7.2.140.0090.01317.00
7.2.130.0070.01416.96
7.2.120.0110.01116.91
7.2.110.0030.01716.94
7.2.100.0140.00616.97
7.2.90.0030.01816.98
7.2.80.0150.01517.03
7.2.70.0100.01016.96
7.2.60.0190.00716.98
7.2.50.0110.01716.89
7.2.40.0080.01216.95
7.2.30.0100.01016.99
7.2.20.0040.02016.96
7.2.10.0310.01016.87
7.2.00.0070.01317.00

preferences:
32.48 ms | 403 KiB | 5 Q