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(hexdec(bin2hex(mb_substr($message, $i, 1))), $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 6HJYN
Output for 7.1.0
Warning: Cannot assign an empty string to a string offset in /in/ZU8B8 on line 25 Warning: Cannot assign an empty string to a string offset in /in/ZU8B8 on line 25 Warning: Cannot assign an empty string to a string offset in /in/ZU8B8 on line 25 Warning: Cannot assign an empty string to a string offset in /in/ZU8B8 on line 25 Warning: Cannot assign an empty string to a string offset in /in/ZU8B8 on line 25 Warning: Cannot assign an empty string to a string offset in /in/ZU8B8 on line 25 Warning: Cannot assign an empty string to a string offset in /in/ZU8B8 on line 25 Warning: Cannot assign an empty string to a string offset in /in/ZU8B8 on line 25 Warning: Cannot assign an empty string to a string offset in /in/ZU8B8 on line 25 Warning: Cannot assign an empty string to a string offset in /in/ZU8B8 on line 25 Warning: Cannot assign an empty string to a string offset in /in/ZU8B8 on line 25 Warning: Cannot assign an empty string to a string offset in /in/ZU8B8 on line 25 Warning: Cannot assign an empty string to a string offset in /in/ZU8B8 on line 25 Warning: Cannot assign an empty string to a string offset in /in/ZU8B8 on line 25 Warning: Cannot assign an empty string to a string offset in /in/ZU8B8 on line 25 Warning: Cannot assign an empty string to a string offset in /in/ZU8B8 on line 25 Warning: Cannot assign an empty string to a string offset in /in/ZU8B8 on line 25 Warning: Cannot assign an empty string to a string offset in /in/ZU8B8 on line 25 Warning: Cannot assign an empty string to a string offset in /in/ZU8B8 on line 25 Warning: Cannot assign an empty string to a string offset in /in/ZU8B8 on line 25 Warning: Cannot assign an empty string to a string offset in /in/ZU8B8 on line 25 Warning: Cannot assign an empty string to a string offset in /in/ZU8B8 on line 25 Warning: Cannot assign an empty string to a string offset in /in/ZU8B8 on line 25 Warning: Cannot assign an empty string to a string offset in /in/ZU8B8 on line 25 Warning: Cannot assign an empty string to a string offset in /in/ZU8B8 on line 25 Warning: Cannot assign an empty string to a string offset in /in/ZU8B8 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.6.8 - 5.6.28, hhvm-3.12.0, 7.0.0 - 7.0.14
string(28) "p " int(112) int(0) int(0) int(0) int(0) int(0) 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(0) int(0) int(0) int(0) int(0) int(0) int(0) int(0) int(0) int(0)
Output for hhvm-3.10.0

Process exited with code 153.
Output for 5.4.0 - 5.5.35
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/ZU8B8 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/ZU8B8 on line 4
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error in /in/ZU8B8 on line 4
Process exited with code 255.