3v4l.org

run code in 300+ PHP versions simultaneously
<?php // $base = 'test image with Ümlaäute und spaäe.jpg'; $nameEncodedFromGWT = 'test%20image%20with%20U%CC%88mlaa%CC%88ute%20und%20spaa%CC%88e.jpg'; $nameEncodedFromPHP = 'test%20image%20with%20%C3%9Cmla%C3%A4ute%20und%20spa%C3%A4e.jpg'; // this is encoded with urlencode() / rawurlencode() // using rawurldecode $nameDecodedFromGWTRaw = utf8_urldecode($nameEncodedFromGWT); $nameDecodedFromPHPRaw = rawurldecode($nameEncodedFromPHP); // using urldecode $nameDecodedFromGWTSimple = urldecode($nameEncodedFromGWT); $nameDecodedFromPHPSimple = urldecode($nameEncodedFromPHP); echo 'Name from GWT: ' . $nameEncodedFromGWT . PHP_EOL . 'Decoded using rawurldecode(): ' . $nameDecodedFromGWTRaw . PHP_EOL . 'Decoded using urldecode(): ' . $nameDecodedFromGWTSimple . PHP_EOL . 'String length for rawurldecode(): ' . strlen($nameDecodedFromGWTRaw) . PHP_EOL . 'String length for urldeocde(): ' . strlen($nameDecodedFromGWTSimple) . PHP_EOL . 'Cleaned name for rawurldecode(): ' . cleanImageName($nameDecodedFromGWTRaw) . PHP_EOL . 'Cleaned name for urldecode(): ' . cleanImageName($nameDecodedFromGWTSimple); echo PHP_EOL . '===============================================' . PHP_EOL; echo 'Name from PHP: ' . $nameEncodedFromPHP . PHP_EOL . 'Decoded using rawurldecode(): ' . $nameDecodedFromPHPRaw . PHP_EOL . 'Decoded using urldecode(): ' . $nameDecodedFromPHPSimple . PHP_EOL . 'String length for rawurldecode(): ' . strlen($nameDecodedFromPHPRaw) . PHP_EOL . 'String length for urldecode(): ' . strlen($nameDecodedFromPHPSimple) . PHP_EOL . 'Cleaned name for rawurldecode(): ' . cleanImageName($nameDecodedFromPHPRaw) . PHP_EOL . 'Cleaned name for urldecode(): ' . cleanImageName($nameDecodedFromPHPSimple); function utf8_urldecode($str) { $str = preg_replace("/%u([0-9a-f]{3,4})/i","&#x\\1;",urldecode($str)); return html_entity_decode($str,null,'UTF-8');; } /** * Uses preg_replace to replace german umlauts */ function cleanImageName($name) { $clean = preg_replace( array( '/\|/', '/[äÄ]/u', '/[öÖ]/u', '/[üÜ]/u', '/ß/', '/([a-zA-Z0-9]+)/i', '/ - /','/ /','/-/','/&/', '/[á|à|À|Á]/u', '/[é|è|É|È]/u', '/[_\x7c-\xff\$\%\=\?\@\(\)§!\|`´\*#;,:\.<>\/"\'#\t\r\n]/' ), array( ' ', 'ae', 'oe', 'ue', 'ss', '$1', ' ', ' ', ' ', 'und', 'a', 'e', ' ', ), $name); return str_replace(' ', '-', $clean); } ?>

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.0120.00617.25
8.3.50.0110.00922.19
8.3.40.0150.00018.92
8.3.30.0090.00619.04
8.3.20.0040.00420.16
8.3.10.0050.00321.90
8.3.00.0000.01017.75
8.2.180.0060.00916.63
8.2.170.0080.00819.04
8.2.160.0070.00722.96
8.2.150.0080.00024.18
8.2.140.0060.01224.66
8.2.130.0040.00426.16
8.2.120.0060.00319.86
8.2.110.0060.00321.09
8.2.100.0120.00018.22
8.2.90.0000.00818.16
8.2.80.0000.01019.78
8.2.70.0000.00817.93
8.2.60.0030.00517.75
8.2.50.0000.00818.07
8.2.40.0040.00418.34
8.2.30.0090.00018.16
8.2.20.0060.00317.98
8.2.10.0030.00618.16
8.2.00.0070.00418.06
8.1.280.0100.01025.92
8.1.270.0000.00920.53
8.1.260.0080.00026.35
8.1.250.0040.00428.09
8.1.240.0000.00923.96
8.1.230.0100.00321.10
8.1.220.0030.00617.89
8.1.210.0000.00819.16
8.1.200.0000.00917.73
8.1.190.0040.00417.47
8.1.180.0030.00518.10
8.1.170.0040.00420.40
8.1.160.0000.00722.09
8.1.150.0000.00918.94
8.1.140.0050.00317.76
8.1.130.0080.00017.93
8.1.120.0040.00417.69
8.1.110.0050.00317.59
8.1.100.0030.00517.70
8.1.90.0000.00717.67
8.1.80.0040.00417.68
8.1.70.0000.00717.70
8.1.60.0000.00817.76
8.1.50.0050.00517.70
8.1.40.0000.01217.62
8.1.30.0060.00317.78
8.1.20.0080.00017.79
8.1.10.0080.00017.65
8.1.00.0080.00017.61
8.0.300.0050.00319.78
8.0.290.0040.00417.00
8.0.280.0000.00718.57
8.0.270.0040.00417.32
8.0.260.0070.00017.23
8.0.250.0000.00717.20
8.0.240.0030.00317.21
8.0.230.0080.00017.20
8.0.220.0000.00717.23
8.0.210.0040.00417.21
8.0.200.0040.00417.25
8.0.190.0070.00017.22
8.0.180.0080.00017.19
8.0.170.0060.00317.17
8.0.160.0040.00417.18
8.0.150.0070.00017.00
8.0.140.0000.00817.05
8.0.130.0070.00013.61
8.0.120.0040.00417.08
8.0.110.0080.00017.28
8.0.100.0020.00517.08
8.0.90.0080.00017.27
8.0.80.0060.01017.27
8.0.70.0040.00417.21
8.0.60.0040.00417.25
8.0.50.0040.00417.27
8.0.30.0130.01217.25
8.0.20.0050.01517.53
8.0.10.0000.00717.32
8.0.00.0090.01416.99
7.4.330.0050.00015.13
7.4.320.0050.00316.93
7.4.300.0060.00016.96
7.4.290.0000.00716.83
7.4.280.0050.00216.85
7.4.270.0040.00416.93
7.4.260.0040.00416.83
7.4.250.0040.00416.69
7.4.240.0030.00516.88
7.4.230.0000.00716.73
7.4.220.0090.00916.90
7.4.210.0040.01116.87
7.4.200.0040.00416.71
7.4.160.0030.01216.85
7.4.150.0150.00917.40
7.4.140.0110.00917.86
7.4.130.0120.00616.82
7.4.120.0110.00716.78
7.4.110.0050.01916.73
7.4.100.0170.00616.88
7.4.90.0110.00716.74
7.4.80.0180.00019.39
7.4.70.0100.01016.80
7.4.60.0030.01416.58
7.4.50.0030.00516.39
7.4.40.0070.01116.84
7.4.30.0100.01416.79
7.4.00.0000.01315.29
7.3.330.0000.00613.57
7.3.320.0150.00213.60
7.3.310.0000.00816.45
7.3.300.0030.00316.63
7.3.290.0050.01116.60
7.3.280.0100.01016.62
7.3.270.0110.01417.40
7.3.260.0220.00416.58
7.3.250.0090.01016.69
7.3.240.0110.00716.68
7.3.230.0060.01216.60
7.3.210.0100.00716.50
7.3.200.0060.01119.39
7.3.190.0110.00616.56
7.3.180.0100.01316.95
7.3.170.0090.00916.82
7.3.160.0080.01416.74
7.2.330.0060.01216.89
7.2.320.0090.00916.65
7.2.310.0000.01716.89
7.2.300.0120.00316.82
7.2.290.0130.00616.86
7.2.60.0060.00617.14
7.2.00.0040.00419.78
7.1.200.0170.00415.54
7.1.100.0040.00718.64
7.1.70.0000.00817.33
7.1.60.0100.01419.50
7.1.50.0060.01916.91
7.1.00.0000.08022.43
7.0.200.0070.00715.35
7.0.140.0070.03021.99
7.0.60.0070.08019.94
7.0.50.0170.06718.01
7.0.40.0200.04720.06
7.0.30.0300.08320.18
7.0.20.0330.05020.13
7.0.10.0100.08720.12
7.0.00.0000.08320.11
5.6.280.0030.07320.92
5.6.210.0100.07320.77
5.6.200.0000.04318.13
5.6.190.0070.05720.77
5.6.180.0430.05720.68
5.6.170.0230.06020.56
5.6.160.0100.05020.42
5.6.150.0100.05318.21
5.6.140.0030.04018.27
5.6.130.0170.04318.14
5.6.120.0130.08021.03
5.6.110.0070.08321.15
5.6.100.0170.07320.97
5.6.90.0070.08321.00
5.6.80.0130.07320.40
5.5.350.0330.06720.49
5.5.340.0070.08017.96
5.5.330.0100.04720.43
5.5.320.0070.08020.38
5.5.310.0300.07320.37
5.5.300.0030.07718.04
5.5.290.0030.07017.98
5.5.280.0100.07320.81
5.5.270.0170.07720.72
5.5.260.0000.08720.69
5.5.250.0000.04320.67
5.5.240.0030.08320.25
5.4.450.0300.06319.57
5.4.440.0270.07719.52
5.4.430.0170.03319.46
5.4.420.0270.06319.16
5.4.410.0170.03719.34
5.4.400.0370.05718.83
5.4.390.0300.08018.59
5.4.380.0470.07018.84
5.4.370.0370.07018.50
5.4.360.0330.07018.77
5.4.350.0330.07718.75
5.4.340.0370.07318.63
5.4.320.0400.08018.57
5.4.310.0470.06018.63
5.4.300.0330.07718.62
5.4.290.0370.06718.74
5.4.280.0930.05318.47
5.4.270.0300.07718.83
5.4.260.0430.05318.69
5.4.250.0430.05718.78
5.4.240.0200.05718.58
5.4.230.1530.06318.74
5.4.220.0400.06318.60
5.4.210.2600.05318.56
5.4.200.0430.06016.52
5.4.190.0430.05318.72
5.4.180.0430.06318.58
5.4.170.0400.05318.57
5.4.160.0400.05718.46
5.4.150.0330.06318.77
5.4.140.0300.06316.38
5.4.130.0300.05716.19
5.4.120.0370.04316.31
5.4.110.0270.05316.37
5.4.100.0470.05316.36
5.4.90.0470.05316.45
5.4.80.0330.05716.25
5.4.70.0170.05316.34
5.4.60.1200.04316.36
5.4.50.0430.06316.42
5.4.40.0300.06016.32
5.4.30.0030.06316.39
5.4.20.0170.03716.39
5.4.10.0370.05316.21

preferences:
52.29 ms | 401 KiB | 5 Q