3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php function stripNonValidCharaters ($message) { $validGSMKeycodes = [ 0x0040, 0x0394, 0x0020, 0x0030, 0x00a1, 0x0050, 0x00bf, 0x0070, 0x00a3, 0x005f, 0x0021, 0x0031, 0x0041, 0x0051, 0x0061, 0x0071, 0x0024, 0x03a6, 0x0022, 0x0032, 0x0042, 0x0052, 0x0062, 0x0072, 0x00a5, 0x0393, 0x0023, 0x0033, 0x0043, 0x0053, 0x0063, 0x0073, 0x00e8, 0x039b, 0x00a4, 0x0034, 0x0035, 0x0044, 0x0054, 0x0064, 0x0074, 0x00e9, 0x03a9, 0x0025, 0x0045, 0x0045, 0x0055, 0x0065, 0x0075, 0x00f9, 0x03a0, 0x0026, 0x0036, 0x0046, 0x0056, 0x0066, 0x0076, 0x00ec, 0x03a8, 0x0027, 0x0037, 0x0047, 0x0057, 0x0067, 0x0077, 0x00f2, 0x03a3, 0x0028, 0x0038, 0x0048, 0x0058, 0x0068, 0x0078, 0x00c7, 0x0398, 0x0029, 0x0039, 0x0049, 0x0059, 0x0069, 0x0079, 0x000a, 0x039e, 0x002a, 0x003a, 0x004a, 0x005a, 0x006a, 0x007a, 0x00d8, 0x001b, 0x002b, 0x003b, 0x004b, 0x00c4, 0x006b, 0x00e4, 0x00f8, 0x00c6, 0x002c, 0x003c, 0x004c, 0x00d6, 0x006c, 0x00f6, 0x000d, 0x00e6, 0x002d, 0x003d, 0x004d, 0x00d1, 0x006d, 0x00f1, 0x00c5, 0x00df, 0x002e, 0x003e, 0x004e, 0x00dc, 0x006e, 0x00fc, 0x00e5, 0x00c9, 0x002f, 0x003f, 0x004f, 0x00a7, 0x006f, 0x00e0 ]; $count = 0; for($i = 0; $i < strlen($message); $i++) { if(!in_array(ord($message[$i]), $validGSMKeycodes, true)) { $message[$i] = ''; $count++; } } return ['message' => $message, 'replacements' => $count]; } $msg = "pусский алфавит"; $tmp['message'] = ''; while ($tmp['message'] != $msg) { $tmp = stripNonValidCharaters($msg); $msg = $tmp['message']; } var_dump($msg); for($i = 0; $i < strlen($msg); $i++) { var_dump(ord($msg[$i])); }
based on 9dOaa
Output for 7.1.0
Warning: Cannot assign an empty string to a string offset in /in/5ET0m on line 25 Warning: Cannot assign an empty string to a string offset in /in/5ET0m on line 25 Warning: Cannot assign an empty string to a string offset in /in/5ET0m on line 25 Warning: Cannot assign an empty string to a string offset in /in/5ET0m on line 25 Warning: Cannot assign an empty string to a string offset in /in/5ET0m on line 25 Warning: Cannot assign an empty string to a string offset in /in/5ET0m on line 25 Warning: Cannot assign an empty string to a string offset in /in/5ET0m on line 25 Warning: Cannot assign an empty string to a string offset in /in/5ET0m on line 25 Warning: Cannot assign an empty string to a string offset in /in/5ET0m on line 25 Warning: Cannot assign an empty string to a string offset in /in/5ET0m on line 25 Warning: Cannot assign an empty string to a string offset in /in/5ET0m on line 25 Warning: Cannot assign an empty string to a string offset in /in/5ET0m on line 25 Warning: Cannot assign an empty string to a string offset in /in/5ET0m on line 25 Warning: Cannot assign an empty string to a string offset in /in/5ET0m on line 25 Warning: Cannot assign an empty string to a string offset in /in/5ET0m on line 25 Warning: Cannot assign an empty string to a string offset in /in/5ET0m on line 25 Warning: Cannot assign an empty string to a string offset in /in/5ET0m on line 25 Warning: Cannot assign an empty string to a string offset in /in/5ET0m on line 25 Warning: Cannot assign an empty string to a string offset in /in/5ET0m on line 25 Warning: Cannot assign an empty string to a string offset in /in/5ET0m on line 25 Warning: Cannot assign an empty string to a string offset in /in/5ET0m on line 25 string(28) "pусский алфавит" int(112) int(209) int(131) int(209) int(129) int(209) int(129) int(208) int(186) int(208) int(184) int(208) int(185) int(32) int(208) int(176) int(208) int(187) int(209) int(132) int(208) int(176) int(208) int(178) int(208) int(184) int(209) int(130)
Output for 5.4.0 - 5.6.28, hhvm-3.10.0 - 3.12.0, 7.0.0 - 7.0.14
string(28) "p��� ��" int(112) int(209) int(0) int(209) int(0) int(209) int(0) int(0) int(0) int(0) int(0) int(0) int(0) int(32) int(0) int(0) int(0) int(0) int(209) int(0) int(0) int(0) int(0) int(0) int(0) int(0) int(209) int(0)
Output for 4.4.2 - 4.4.9, 5.1.0 - 5.3.29
Parse error: syntax error, unexpected '[' in /in/5ET0m on line 4
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.4.1, 5.0.0 - 5.0.5
Parse error: parse error, unexpected '[' in /in/5ET0m on line 4
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error in /in/5ET0m on line 4
Process exited with code 255.