3v4l.org

run code in 300+ PHP versions simultaneously
<?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)))); }
Output for 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
Fatal error: Uncaught Error: Cannot assign an empty string to a string offset in /in/KD85m:25 Stack trace: #0 /in/KD85m(37): stripNonValidCharaters('p\xD1\x83\xD1\x81\xD1\x81\xD0\xBA\xD0\xB8\xD0\xB9 \xD0...') #1 {main} thrown in /in/KD85m on line 25
Process exited with code 255.
Output for 7.1.0 - 7.1.25, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33
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, 7.0.0 - 7.0.20
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 5.4.0 - 5.4.45, 5.5.24 - 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.1.6, 5.2.0 - 5.2.17, 5.3.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.3.11, 4.4.0 - 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.

preferences:
237.24 ms | 401 KiB | 327 Q