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(trim($msg)); for($i = 0; $i < strlen($msg); $i++) { var_dump(hexdec(bin2hex(mb_substr($msg, $i, 1)))); }
based on KD85m
Output for 7.1.0
Warning: Cannot assign an empty string to a string offset in /in/94U7g on line 25 Warning: Cannot assign an empty string to a string offset in /in/94U7g on line 25 Warning: Cannot assign an empty string to a string offset in /in/94U7g on line 25 Warning: Cannot assign an empty string to a string offset in /in/94U7g on line 25 Warning: Cannot assign an empty string to a string offset in /in/94U7g on line 25 Warning: Cannot assign an empty string to a string offset in /in/94U7g on line 25 Warning: Cannot assign an empty string to a string offset in /in/94U7g on line 25 Warning: Cannot assign an empty string to a string offset in /in/94U7g on line 25 Warning: Cannot assign an empty string to a string offset in /in/94U7g on line 25 Warning: Cannot assign an empty string to a string offset in /in/94U7g on line 25 Warning: Cannot assign an empty string to a string offset in /in/94U7g on line 25 Warning: Cannot assign an empty string to a string offset in /in/94U7g on line 25 Warning: Cannot assign an empty string to a string offset in /in/94U7g on line 25 Warning: Cannot assign an empty string to a string offset in /in/94U7g on line 25 Warning: Cannot assign an empty string to a string offset in /in/94U7g on line 25 Warning: Cannot assign an empty string to a string offset in /in/94U7g on line 25 Warning: Cannot assign an empty string to a string offset in /in/94U7g on line 25 Warning: Cannot assign an empty string to a string offset in /in/94U7g on line 25 Warning: Cannot assign an empty string to a string offset in /in/94U7g on line 25 Warning: Cannot assign an empty string to a string offset in /in/94U7g on line 25 Warning: Cannot assign an empty string to a string offset in /in/94U7g on line 25 Warning: Cannot assign an empty string to a string offset in /in/94U7g on line 25 Warning: Cannot assign an empty string to a string offset in /in/94U7g on line 25 Warning: Cannot assign an empty string to a string offset in /in/94U7g on line 25 Warning: Cannot assign an empty string to a string offset in /in/94U7g on line 25 Warning: Cannot assign an empty string to a string offset in /in/94U7g on line 25 string(28) "pусский алфавит" int(112) int(53635) int(53633) int(53633) int(53434) int(53432) int(53433) int(32) int(53424) int(53435) int(53636) int(53424) int(53426) int(53432) int(53634) 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 5.6.8 - 5.6.28, hhvm-3.12.0, 7.0.0 - 7.0.14
string(1) "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(27) "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/94U7g 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/94U7g on line 4
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error in /in/94U7g on line 4
Process exited with code 255.