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(hexdec(bin2hex(mb_substr($msg, $i, 1)))); }
based on k6KOD
Output for 7.1.0
Warning: Cannot assign an empty string to a string offset in /in/KD85m on line 25 Warning: Cannot assign an empty string to a string offset in /in/KD85m on line 25 Warning: Cannot assign an empty string to a string offset in /in/KD85m on line 25 Warning: Cannot assign an empty string to a string offset in /in/KD85m on line 25 Warning: Cannot assign an empty string to a string offset in /in/KD85m on line 25 Warning: Cannot assign an empty string to a string offset in /in/KD85m on line 25 Warning: Cannot assign an empty string to a string offset in /in/KD85m on line 25 Warning: Cannot assign an empty string to a string offset in /in/KD85m on line 25 Warning: Cannot assign an empty string to a string offset in /in/KD85m on line 25 Warning: Cannot assign an empty string to a string offset in /in/KD85m on line 25 Warning: Cannot assign an empty string to a string offset in /in/KD85m on line 25 Warning: Cannot assign an empty string to a string offset in /in/KD85m on line 25 Warning: Cannot assign an empty string to a string offset in /in/KD85m on line 25 Warning: Cannot assign an empty string to a string offset in /in/KD85m on line 25 Warning: Cannot assign an empty string to a string offset in /in/KD85m on line 25 Warning: Cannot assign an empty string to a string offset in /in/KD85m on line 25 Warning: Cannot assign an empty string to a string offset in /in/KD85m on line 25 Warning: Cannot assign an empty string to a string offset in /in/KD85m on line 25 Warning: Cannot assign an empty string to a string offset in /in/KD85m on line 25 Warning: Cannot assign an empty string to a string offset in /in/KD85m on line 25 Warning: Cannot assign an empty string to a string offset in /in/KD85m on line 25 Warning: Cannot assign an empty string to a string offset in /in/KD85m on line 25 Warning: Cannot assign an empty string to a string offset in /in/KD85m on line 25 Warning: Cannot assign an empty string to a string offset in /in/KD85m on line 25 Warning: Cannot assign an empty string to a string offset in /in/KD85m on line 25 Warning: Cannot assign an empty string to a string offset in /in/KD85m 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(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/KD85m 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/KD85m on line 4
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error in /in/KD85m on line 4
Process exited with code 255.