3v4l.org

run code in 300+ PHP versions simultaneously
<?php $string = 'Öé'; $chars = [ // Decompositions for Latin-1 Supplement chr(194) . chr(170) => 'a', chr(194) . chr(186) => 'o', chr(195) . chr(128) => 'A', chr(195) . chr(129) => 'A', chr(195) . chr(130) => 'A', chr(195) . chr(131) => 'A', chr(195) . chr(132) => 'A', chr(195) . chr(133) => 'A', chr(195) . chr(134) => 'AE', chr(195) . chr(135) => 'C', chr(195) . chr(136) => 'E', chr(195) . chr(137) => 'E', chr(195) . chr(138) => 'E', chr(195) . chr(139) => 'E', chr(195) . chr(140) => 'I', chr(195) . chr(141) => 'I', chr(195) . chr(142) => 'I', chr(195) . chr(143) => 'I', chr(195) . chr(144) => 'D', chr(195) . chr(145) => 'N', chr(195) . chr(146) => 'O', chr(195) . chr(147) => 'O', chr(195) . chr(148) => 'O', chr(195) . chr(149) => 'O', chr(195) . chr(150) => 'O', chr(195) . chr(153) => 'U', chr(195) . chr(154) => 'U', chr(195) . chr(155) => 'U', chr(195) . chr(156) => 'U', chr(195) . chr(157) => 'Y', chr(195) . chr(158) => 'TH', chr(195) . chr(159) => 's', chr(195) . chr(160) => 'a', chr(195) . chr(161) => 'a', chr(195) . chr(162) => 'a', chr(195) . chr(163) => 'a', chr(195) . chr(164) => 'a', chr(195) . chr(165) => 'a', chr(195) . chr(166) => 'ae', chr(195) . chr(167) => 'c', chr(195) . chr(168) => 'e', chr(195) . chr(169) => 'e', chr(195) . chr(170) => 'e', chr(195) . chr(171) => 'e', chr(195) . chr(172) => 'i', chr(195) . chr(173) => 'i', chr(195) . chr(174) => 'i', chr(195) . chr(175) => 'i', chr(195) . chr(176) => 'd', chr(195) . chr(177) => 'n', chr(195) . chr(178) => 'o', chr(195) . chr(179) => 'o', chr(195) . chr(180) => 'o', chr(195) . chr(181) => 'o', chr(195) . chr(182) => 'o', chr(195) . chr(184) => 'o', chr(195) . chr(185) => 'u', chr(195) . chr(186) => 'u', chr(195) . chr(187) => 'u', chr(195) . chr(188) => 'u', chr(195) . chr(189) => 'y', chr(195) . chr(190) => 'th', chr(195) . chr(191) => 'y', chr(195) . chr(152) => 'O', // Decompositions for Latin Extended-A chr(196) . chr(128) => 'A', chr(196) . chr(129) => 'a', chr(196) . chr(130) => 'A', chr(196) . chr(131) => 'a', chr(196) . chr(132) => 'A', chr(196) . chr(133) => 'a', chr(196) . chr(134) => 'C', chr(196) . chr(135) => 'c', chr(196) . chr(136) => 'C', chr(196) . chr(137) => 'c', chr(196) . chr(138) => 'C', chr(196) . chr(139) => 'c', chr(196) . chr(140) => 'C', chr(196) . chr(141) => 'c', chr(196) . chr(142) => 'D', chr(196) . chr(143) => 'd', chr(196) . chr(144) => 'D', chr(196) . chr(145) => 'd', chr(196) . chr(146) => 'E', chr(196) . chr(147) => 'e', chr(196) . chr(148) => 'E', chr(196) . chr(149) => 'e', chr(196) . chr(150) => 'E', chr(196) . chr(151) => 'e', chr(196) . chr(152) => 'E', chr(196) . chr(153) => 'e', chr(196) . chr(154) => 'E', chr(196) . chr(155) => 'e', chr(196) . chr(156) => 'G', chr(196) . chr(157) => 'g', chr(196) . chr(158) => 'G', chr(196) . chr(159) => 'g', chr(196) . chr(160) => 'G', chr(196) . chr(161) => 'g', chr(196) . chr(162) => 'G', chr(196) . chr(163) => 'g', chr(196) . chr(164) => 'H', chr(196) . chr(165) => 'h', chr(196) . chr(166) => 'H', chr(196) . chr(167) => 'h', chr(196) . chr(168) => 'I', chr(196) . chr(169) => 'i', chr(196) . chr(170) => 'I', chr(196) . chr(171) => 'i', chr(196) . chr(172) => 'I', chr(196) . chr(173) => 'i', chr(196) . chr(174) => 'I', chr(196) . chr(175) => 'i', chr(196) . chr(176) => 'I', chr(196) . chr(177) => 'i', chr(196) . chr(178) => 'IJ', chr(196) . chr(179) => 'ij', chr(196) . chr(180) => 'J', chr(196) . chr(181) => 'j', chr(196) . chr(182) => 'K', chr(196) . chr(183) => 'k', chr(196) . chr(184) => 'k', chr(196) . chr(185) => 'L', chr(196) . chr(186) => 'l', chr(196) . chr(187) => 'L', chr(196) . chr(188) => 'l', chr(196) . chr(189) => 'L', chr(196) . chr(190) => 'l', chr(196) . chr(191) => 'L', chr(197) . chr(128) => 'l', chr(197) . chr(129) => 'L', chr(197) . chr(130) => 'l', chr(197) . chr(131) => 'N', chr(197) . chr(132) => 'n', chr(197) . chr(133) => 'N', chr(197) . chr(134) => 'n', chr(197) . chr(135) => 'N', chr(197) . chr(136) => 'n', chr(197) . chr(137) => 'N', chr(197) . chr(138) => 'n', chr(197) . chr(139) => 'N', chr(197) . chr(140) => 'O', chr(197) . chr(141) => 'o', chr(197) . chr(142) => 'O', chr(197) . chr(143) => 'o', chr(197) . chr(144) => 'O', chr(197) . chr(145) => 'o', chr(197) . chr(146) => 'OE', chr(197) . chr(147) => 'oe', chr(197) . chr(148) => 'R', chr(197) . chr(149) => 'r', chr(197) . chr(150) => 'R', chr(197) . chr(151) => 'r', chr(197) . chr(152) => 'R', chr(197) . chr(153) => 'r', chr(197) . chr(154) => 'S', chr(197) . chr(155) => 's', chr(197) . chr(156) => 'S', chr(197) . chr(157) => 's', chr(197) . chr(158) => 'S', chr(197) . chr(159) => 's', chr(197) . chr(160) => 'S', chr(197) . chr(161) => 's', chr(197) . chr(162) => 'T', chr(197) . chr(163) => 't', chr(197) . chr(164) => 'T', chr(197) . chr(165) => 't', chr(197) . chr(166) => 'T', chr(197) . chr(167) => 't', chr(197) . chr(168) => 'U', chr(197) . chr(169) => 'u', chr(197) . chr(170) => 'U', chr(197) . chr(171) => 'u', chr(197) . chr(172) => 'U', chr(197) . chr(173) => 'u', chr(197) . chr(174) => 'U', chr(197) . chr(175) => 'u', chr(197) . chr(176) => 'U', chr(197) . chr(177) => 'u', chr(197) . chr(178) => 'U', chr(197) . chr(179) => 'u', chr(197) . chr(180) => 'W', chr(197) . chr(181) => 'w', chr(197) . chr(182) => 'Y', chr(197) . chr(183) => 'y', chr(197) . chr(184) => 'Y', chr(197) . chr(185) => 'Z', chr(197) . chr(186) => 'z', chr(197) . chr(187) => 'Z', chr(197) . chr(188) => 'z', chr(197) . chr(189) => 'Z', chr(197) . chr(190) => 'z', chr(197) . chr(191) => 's', // Decompositions for Latin Extended-B chr(200) . chr(152) => 'S', chr(200) . chr(153) => 's', chr(200) . chr(154) => 'T', chr(200) . chr(155) => 't', // Euro Sign chr(226) . chr(130) . chr(172) => 'E', // GBP (Pound) Sign chr(194) . chr(163) => '', // Vowels with diacritic (Vietnamese) // unmarked chr(198) . chr(160) => 'O', chr(198) . chr(161) => 'o', chr(198) . chr(175) => 'U', chr(198) . chr(176) => 'u', // grave accent chr(225) . chr(186) . chr(166) => 'A', chr(225) . chr(186) . chr(167) => 'a', chr(225) . chr(186) . chr(176) => 'A', chr(225) . chr(186) . chr(177) => 'a', chr(225) . chr(187) . chr(128) => 'E', chr(225) . chr(187) . chr(129) => 'e', chr(225) . chr(187) . chr(146) => 'O', chr(225) . chr(187) . chr(147) => 'o', chr(225) . chr(187) . chr(156) => 'O', chr(225) . chr(187) . chr(157) => 'o', chr(225) . chr(187) . chr(170) => 'U', chr(225) . chr(187) . chr(171) => 'u', chr(225) . chr(187) . chr(178) => 'Y', chr(225) . chr(187) . chr(179) => 'y', // hook chr(225) . chr(186) . chr(162) => 'A', chr(225) . chr(186) . chr(163) => 'a', chr(225) . chr(186) . chr(168) => 'A', chr(225) . chr(186) . chr(169) => 'a', chr(225) . chr(186) . chr(178) => 'A', chr(225) . chr(186) . chr(179) => 'a', chr(225) . chr(186) . chr(186) => 'E', chr(225) . chr(186) . chr(187) => 'e', chr(225) . chr(187) . chr(130) => 'E', chr(225) . chr(187) . chr(131) => 'e', chr(225) . chr(187) . chr(136) => 'I', chr(225) . chr(187) . chr(137) => 'i', chr(225) . chr(187) . chr(142) => 'O', chr(225) . chr(187) . chr(143) => 'o', chr(225) . chr(187) . chr(148) => 'O', chr(225) . chr(187) . chr(149) => 'o', chr(225) . chr(187) . chr(158) => 'O', chr(225) . chr(187) . chr(159) => 'o', chr(225) . chr(187) . chr(166) => 'U', chr(225) . chr(187) . chr(167) => 'u', chr(225) . chr(187) . chr(172) => 'U', chr(225) . chr(187) . chr(173) => 'u', chr(225) . chr(187) . chr(182) => 'Y', chr(225) . chr(187) . chr(183) => 'y', // tilde chr(225) . chr(186) . chr(170) => 'A', chr(225) . chr(186) . chr(171) => 'a', chr(225) . chr(186) . chr(180) => 'A', chr(225) . chr(186) . chr(181) => 'a', chr(225) . chr(186) . chr(188) => 'E', chr(225) . chr(186) . chr(189) => 'e', chr(225) . chr(187) . chr(132) => 'E', chr(225) . chr(187) . chr(133) => 'e', chr(225) . chr(187) . chr(150) => 'O', chr(225) . chr(187) . chr(151) => 'o', chr(225) . chr(187) . chr(160) => 'O', chr(225) . chr(187) . chr(161) => 'o', chr(225) . chr(187) . chr(174) => 'U', chr(225) . chr(187) . chr(175) => 'u', chr(225) . chr(187) . chr(184) => 'Y', chr(225) . chr(187) . chr(185) => 'y', // acute accent chr(225) . chr(186) . chr(164) => 'A', chr(225) . chr(186) . chr(165) => 'a', chr(225) . chr(186) . chr(174) => 'A', chr(225) . chr(186) . chr(175) => 'a', chr(225) . chr(186) . chr(190) => 'E', chr(225) . chr(186) . chr(191) => 'e', chr(225) . chr(187) . chr(144) => 'O', chr(225) . chr(187) . chr(145) => 'o', chr(225) . chr(187) . chr(154) => 'O', chr(225) . chr(187) . chr(155) => 'o', chr(225) . chr(187) . chr(168) => 'U', chr(225) . chr(187) . chr(169) => 'u', // dot below chr(225) . chr(186) . chr(160) => 'A', chr(225) . chr(186) . chr(161) => 'a', chr(225) . chr(186) . chr(172) => 'A', chr(225) . chr(186) . chr(173) => 'a', chr(225) . chr(186) . chr(182) => 'A', chr(225) . chr(186) . chr(183) => 'a', chr(225) . chr(186) . chr(184) => 'E', chr(225) . chr(186) . chr(185) => 'e', chr(225) . chr(187) . chr(134) => 'E', chr(225) . chr(187) . chr(135) => 'e', chr(225) . chr(187) . chr(138) => 'I', chr(225) . chr(187) . chr(139) => 'i', chr(225) . chr(187) . chr(140) => 'O', chr(225) . chr(187) . chr(141) => 'o', chr(225) . chr(187) . chr(152) => 'O', chr(225) . chr(187) . chr(153) => 'o', chr(225) . chr(187) . chr(162) => 'O', chr(225) . chr(187) . chr(163) => 'o', chr(225) . chr(187) . chr(164) => 'U', chr(225) . chr(187) . chr(165) => 'u', chr(225) . chr(187) . chr(176) => 'U', chr(225) . chr(187) . chr(177) => 'u', chr(225) . chr(187) . chr(180) => 'Y', chr(225) . chr(187) . chr(181) => 'y', // Vowels with diacritic (Chinese, Hanyu Pinyin) chr(201) . chr(145) => 'a', // macron chr(199) . chr(149) => 'U', chr(199) . chr(150) => 'u', // acute accent chr(199) . chr(151) => 'U', chr(199) . chr(152) => 'u', // caron chr(199) . chr(141) => 'A', chr(199) . chr(142) => 'a', chr(199) . chr(143) => 'I', chr(199) . chr(144) => 'i', chr(199) . chr(145) => 'O', chr(199) . chr(146) => 'o', chr(199) . chr(147) => 'U', chr(199) . chr(148) => 'u', chr(199) . chr(153) => 'U', chr(199) . chr(154) => 'u', // grave accent chr(199) . chr(155) => 'U', chr(199) . chr(156) => 'u', ]; $string = strtr($string, $chars); var_dump($string);

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.0090.00918.25
8.3.50.0120.00916.29
8.3.40.0090.00618.92
8.3.30.0120.00318.96
8.3.20.0040.00422.14
8.3.10.0030.00623.66
8.3.00.0070.00723.61
8.2.180.0140.01016.70
8.2.170.0000.01822.96
8.2.160.0150.00020.77
8.2.150.0030.00624.18
8.2.140.0030.00524.66
8.2.130.0040.00426.16
8.2.120.0070.00419.39
8.2.110.0030.00622.26
8.2.100.0090.00617.97
8.2.90.0050.00319.60
8.2.80.0000.01018.22
8.2.70.0060.00318.05
8.2.60.0060.00317.75
8.2.50.0040.00418.41
8.2.40.0030.00520.70
8.2.30.0070.00020.76
8.2.20.0080.00018.31
8.2.10.0030.00618.39
8.2.00.0040.00418.39
8.1.280.0180.00025.92
8.1.270.0000.00824.66
8.1.260.0080.00026.35
8.1.250.0080.00028.09
8.1.240.0030.00723.83
8.1.230.0060.00621.13
8.1.220.0000.00917.93
8.1.210.0030.00618.87
8.1.200.0060.00317.48
8.1.190.0050.00517.35
8.1.180.0040.00418.10
8.1.170.0090.00018.84
8.1.160.0000.00818.99
8.1.150.0050.00220.48
8.1.140.0040.00417.77
8.1.130.0000.00919.33
8.1.120.0000.01017.64
8.1.110.0000.00717.66
8.1.100.0000.00817.63
8.1.90.0030.00517.56
8.1.80.0070.00417.69
8.1.70.0000.00917.70
8.1.60.0040.00417.77
8.1.50.0090.00317.70
8.1.40.0000.00817.71
8.1.30.0060.00317.85
8.1.20.0030.00517.80
8.1.10.0000.00917.78
8.1.00.0000.00917.56
8.0.300.0040.00420.14
8.0.290.0080.00016.88
8.0.280.0030.00518.64
8.0.270.0000.00717.46
8.0.260.0000.00817.02
8.0.250.0030.00717.11
8.0.240.0000.00717.19
8.0.230.0040.00417.14
8.0.220.0030.00317.05
8.0.210.0000.00717.13
8.0.200.0050.00217.19
8.0.190.0030.00517.18
8.0.180.0000.00717.12
8.0.170.0090.00016.99
8.0.160.0040.00417.13
8.0.150.0070.00017.00
8.0.140.0040.00416.94
8.0.130.0000.00613.45
8.0.120.0040.00416.98
8.0.110.0060.00317.03
8.0.100.0000.00817.04
8.0.90.0050.00317.00
8.0.80.0050.01517.11
8.0.70.0000.00817.02
8.0.60.0060.00317.08
8.0.50.0040.00417.03
8.0.30.0090.01017.20
8.0.20.0110.00817.42
8.0.10.0000.00817.01
8.0.00.0160.00616.92
7.4.330.0000.00615.55
7.4.320.0070.00016.76
7.4.300.0030.00316.73
7.4.290.0000.00816.68
7.4.280.0030.00616.78
7.4.270.0040.00316.75
7.4.260.0070.00416.55
7.4.250.0040.00416.81
7.4.240.0000.00816.72
7.4.230.0030.00616.70
7.4.220.0040.00416.69
7.4.210.0030.01116.83
7.4.200.0040.00416.86
7.4.160.0050.01216.66
7.4.140.0070.01417.86
7.4.130.0110.00816.64
7.4.120.0120.00816.62
7.4.110.0180.00016.48
7.4.100.0090.00916.47
7.4.90.0120.00616.86
7.4.80.0130.01319.39
7.4.70.0090.01716.64
7.4.60.0120.00616.55
7.4.50.0100.00716.48
7.4.40.0090.01216.77
7.4.00.0090.00915.24
7.3.330.0030.00313.18
7.3.320.0070.00013.20
7.3.310.0040.00416.43
7.3.300.0000.00816.31
7.3.290.0110.00616.44
7.3.280.0100.00816.47
7.3.260.0170.01516.62
7.3.250.0140.00516.57
7.3.240.0070.01116.55
7.3.230.0130.00316.50
7.3.210.0140.01016.54
7.3.200.0060.01016.80
7.3.190.0110.00616.66
7.3.180.0070.01116.41
7.3.170.0060.01216.57
7.3.160.0100.00616.60
7.3.120.0120.00314.93
7.3.110.0040.01514.94
7.3.100.0000.01615.14
7.3.90.0090.00615.04
7.3.80.0030.01314.75
7.3.70.0060.00615.08
7.3.60.0070.00714.92
7.3.50.0060.00315.05
7.3.40.0110.00715.15
7.3.30.0030.01415.08
7.3.20.0040.01516.58
7.3.10.0040.01116.21
7.3.00.0100.00316.66
7.2.330.0090.00916.65
7.2.320.0000.01816.69
7.2.310.0070.01416.73
7.2.300.0060.01216.85
7.2.290.0030.01316.72
7.2.250.0070.01415.38
7.2.240.0100.01015.18
7.2.230.0080.00815.16
7.2.220.0070.00614.95
7.2.210.0040.01115.36
7.2.200.0090.00615.15
7.2.190.0100.00015.03
7.2.180.0040.01115.01
7.2.170.0060.01215.29
7.2.60.0040.00916.73
7.2.30.0090.01219.62
7.2.20.0100.01319.92
7.2.10.0160.01019.94
7.2.00.0080.01719.84
7.1.330.0030.01015.43
7.1.320.0000.01515.63
7.1.310.0030.01015.80
7.1.300.0040.00815.43
7.1.290.0030.01315.71
7.1.280.0030.01715.89
7.1.270.0100.01015.76
7.1.260.0000.01015.53
7.1.200.0040.00815.59
7.1.150.0080.01618.84
7.1.140.0090.01318.61
7.1.130.0120.01218.89
7.1.120.0070.01818.53
7.1.110.0070.01718.02
7.1.100.0110.01217.86
7.1.90.0070.01418.05
7.1.80.0080.01618.04
7.1.70.0060.01617.00
7.1.60.0320.01835.00
7.1.50.0290.01834.74
7.1.40.0340.01734.43
7.1.30.0290.02234.49
7.1.20.0300.02234.38
7.1.10.0100.00816.52
7.1.00.0120.01016.72

preferences:
55.24 ms | 401 KiB | 5 Q