3v4l.org

run code in 300+ PHP versions simultaneously
<?php function getUTF8CharCode($c) { $h = ord($c{0}); if ($h <= 0x7F) { return $h; } else if ($h < 0xC2) { return false; } else if ($h <= 0xDF) { return ($h & 0x1F) << 6 | (ord($c{1}) & 0x3F); } else if ($h <= 0xEF) { return ($h & 0x0F) << 12 | (ord($c{1}) & 0x3F) << 6 | (ord($c{2}) & 0x3F); } else if ($h <= 0xF4) { return ($h & 0x0F) << 18 | (ord($c{1}) & 0x3F) << 12 | (ord($c{2}) & 0x3F) << 6 | (ord($c{3}) & 0x3F); } else { return false; } } function escapeCSSCharacter($c) { return "\\" . base_convert(getUTF8CharCode($c), 10, 16) . " "; } function escapeCSSRule($data, array $immuneChars = array()) { $result = ""; for ($i = 0; $i < mb_strlen($data); $i++) { $currChar = mb_substr($data, $i, 1); var_dump(getUTF8CharCode($currChar), preg_match("/^\w$/", $currChar)); if (getUTF8CharCode($currChar) < 256 && !preg_match("/^\w$/", $currChar) && !in_array($currChar, $immuneChars)) { $result .= escapeCSSCharacter($currChar); } else { $result .= $currChar; } } return $result; } echo escapeCSSRule("#BADA55;}*{display:none;}/*", array("#"));
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: Array and string offset access syntax with curly braces is no longer supported in /in/atlro on line 4
Process exited with code 255.
Output for 7.4.0 - 7.4.33
Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/atlro on line 4 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/atlro on line 10 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/atlro on line 12 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/atlro on line 13 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/atlro on line 15 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/atlro on line 16 Deprecated: Array and string offset access syntax with curly braces is deprecated in /in/atlro on line 17 int(35) int(0) int(66) int(1) int(65) int(1) int(68) int(1) int(65) int(1) int(53) int(1) int(53) int(1) int(59) int(0) int(125) int(0) int(42) int(0) int(123) int(0) int(100) int(1) int(105) int(1) int(115) int(1) int(112) int(1) int(108) int(1) int(97) int(1) int(121) int(1) int(58) int(0) int(110) int(1) int(111) int(1) int(110) int(1) int(101) int(1) int(59) int(0) int(125) int(0) int(47) int(0) int(42) int(0) #BADA55\3b \7d \2a \7b display\3a none\3b \7d \2f \2a
Output for 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.24 - 5.5.35, 5.6.8 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33
int(35) int(0) int(66) int(1) int(65) int(1) int(68) int(1) int(65) int(1) int(53) int(1) int(53) int(1) int(59) int(0) int(125) int(0) int(42) int(0) int(123) int(0) int(100) int(1) int(105) int(1) int(115) int(1) int(112) int(1) int(108) int(1) int(97) int(1) int(121) int(1) int(58) int(0) int(110) int(1) int(111) int(1) int(110) int(1) int(101) int(1) int(59) int(0) int(125) int(0) int(47) int(0) int(42) int(0) #BADA55\3b \7d \2a \7b display\3a none\3b \7d \2f \2a
Output for 5.0.0 - 5.0.5
Parse error: parse error, unexpected T_ARRAY, expecting '&' or T_VARIABLE in /in/atlro on line 27
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_ARRAY, expecting '&' or T_VARIABLE or T_CONST in /in/atlro on line 27
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
Parse error: parse error, unexpected T_ARRAY, expecting '&' or T_VARIABLE or T_CONST in /in/atlro on line 27
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `'&'' or `T_VARIABLE' or `T_CONST' in /in/atlro on line 27
Process exited with code 255.

preferences:
251.64 ms | 401 KiB | 341 Q