3v4l.org

run code in 300+ PHP versions simultaneously
<?php mb_internal_encoding('UTF-8'); $value = 'g' . chr(0xa4) .'eld'; $orignalValue = $value; mb_substitute_character('entity'); $value = mb_convert_encoding($value, 'UTF-8'); if (mb_strlen($value, 'UTF-8') < mb_strlen($orignalValue) || preg_match('|[^\x09\x0A\x0D\x20-\xD77F\xE000-\xFFFD]|e', $value)) { // value not ISO-8859-15 or UTF8 $value = base64_encode($orignalValue); } var_dump(mb_detect_order(), $value);
Output for 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
Warning: preg_match(): The /e modifier is no longer supported, use preg_replace_callback instead in /in/jPgQt on line 11 array(2) { [0]=> string(5) "ASCII" [1]=> string(5) "UTF-8" } string(5) "g?eld"
Output for 5.4.0 - 5.4.45, 5.5.24 - 5.5.35, 5.6.8 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.25, 7.2.0 - 7.2.33
array(2) { [0]=> string(5) "ASCII" [1]=> string(5) "UTF-8" } string(5) "g?eld"
Output for 5.2.5 - 5.2.17, 5.3.0 - 5.3.29
array(2) { [0]=> string(5) "ASCII" [1]=> string(5) "UTF-8" } string(8) "Z6RlbGQ="
Output for 4.3.4 - 4.3.11, 4.4.0 - 4.4.9, 5.0.0 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0 - 5.2.4
Warning: mb_substitute_character(): Unknown character. in /in/jPgQt on line 7 array(2) { [0]=> string(5) "ASCII" [1]=> string(5) "UTF-8" } string(8) "Z6RlbGQ="
Output for 4.3.2 - 4.3.3
Warning: mb_substitute_character(): Unknown character. in /in/jPgQt on line 7 array(5) { [0]=> string(5) "ASCII" [1]=> string(3) "JIS" [2]=> string(5) "UTF-8" [3]=> string(6) "EUC-JP" [4]=> string(4) "SJIS" } string(8) "Z6RlbGQ="
Output for 4.3.0 - 4.3.1
Warning: mb_substitute_character() [http://www.php.net/function.mb-substitute-character]: Unknown character. in /in/jPgQt on line 7 array(5) { [0]=> string(5) "ASCII" [1]=> string(3) "JIS" [2]=> string(5) "UTF-8" [3]=> string(6) "EUC-JP" [4]=> string(4) "SJIS" } string(8) "Z6RlbGQ="

preferences:
238.26 ms | 402 KiB | 328 Q