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(ord($message[$i]), $validGSMKeycodes, true) || ord($message[$i]) == 0) { $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])); }
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.4, 8.3.6
Fatal error: Uncaught Error: Cannot assign an empty string to a string offset in /in/DJDLi:25 Stack trace: #0 /in/DJDLi(37): stripNonValidCharaters('p\xD1\x83\xD1\x81\xD1\x81\xD0\xBA\xD0\xB8\xD0\xB9 \xD0...') #1 {main} thrown in /in/DJDLi on line 25
Process exited with code 255.
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 Fatal error: Uncaught Error: Cannot assign an empty string to a string offset in /in/DJDLi:25 Stack trace: #0 /in/DJDLi(37): stripNonValidCharaters('p\xD1\x83\xD1\x81\xD1\x81\xD0\xBA\xD0\xB8\xD0\xB9 \xD0...') #1 {main} thrown in /in/DJDLi on line 25
Process exited with code 255.
Output for 7.1.0 - 7.1.33, 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/DJDLi on line 25 Warning: Cannot assign an empty string to a string offset in /in/DJDLi on line 25 Warning: Cannot assign an empty string to a string offset in /in/DJDLi on line 25 Warning: Cannot assign an empty string to a string offset in /in/DJDLi on line 25 Warning: Cannot assign an empty string to a string offset in /in/DJDLi on line 25 Warning: Cannot assign an empty string to a string offset in /in/DJDLi on line 25 Warning: Cannot assign an empty string to a string offset in /in/DJDLi on line 25 Warning: Cannot assign an empty string to a string offset in /in/DJDLi on line 25 Warning: Cannot assign an empty string to a string offset in /in/DJDLi on line 25 Warning: Cannot assign an empty string to a string offset in /in/DJDLi on line 25 Warning: Cannot assign an empty string to a string offset in /in/DJDLi on line 25 Warning: Cannot assign an empty string to a string offset in /in/DJDLi on line 25 Warning: Cannot assign an empty string to a string offset in /in/DJDLi on line 25 Warning: Cannot assign an empty string to a string offset in /in/DJDLi on line 25 Warning: Cannot assign an empty string to a string offset in /in/DJDLi on line 25 Warning: Cannot assign an empty string to a string offset in /in/DJDLi on line 25 Warning: Cannot assign an empty string to a string offset in /in/DJDLi on line 25 Warning: Cannot assign an empty string to a string offset in /in/DJDLi on line 25 Warning: Cannot assign an empty string to a string offset in /in/DJDLi on line 25 Warning: Cannot assign an empty string to a string offset in /in/DJDLi on line 25 Warning: Cannot assign an empty string to a string offset in /in/DJDLi 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.4.45, 5.5.24 - 5.5.35, 5.6.8 - 5.6.28, 7.0.0 - 7.0.20
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/DJDLi 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/DJDLi on line 4
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error in /in/DJDLi on line 4
Process exited with code 255.

preferences:
262.08 ms | 401 KiB | 356 Q