3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php $source = json_encode([new StdClass, "This is a test", "Foo's bar", 1, 5]); function escapeForJs($string) { $len = mb_strlen($string, 'utf8'); $array = []; for ($i = 0; $i < $len; $i++) { $array[] = mb_substr($string, $i, 1, 'utf8'); } return implode("", array_map(function($char) { if (ctype_alnum($char)) { return $char; } $bytelen = mb_strlen($char, '8bit'); if ($bytelen === 1) { return '\\x' . str_pad(dechex(ord($char)), 2, '0', STR_PAD_LEFT); } $result = '\\u'; for ($i = 0; $i < $bytelen; $i++) { $result .= str_pad(dechex(ord($char[$i])), 2, '0', STR_PAD_LEFT); } return $result; }, $array)); } var_dump(escapeForJs($source)); var_dump(json_encode($source));
based on LrmbR
Output for 5.4.0 - 7.2.0
string(88) "\x5b\x7b\x7d\x2c\x22This\x20is\x20a\x20test\x22\x2c\x22Foo\x27s\x20bar\x22\x2c1\x2c5\x5d" string(43) ""[{},\"This is a test\",\"Foo's bar\",1,5]""
Output for 4.4.2 - 4.4.9, 5.1.0 - 5.3.29
Parse error: syntax error, unexpected '[', expecting ')' in /in/leN7E on line 3
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 '[', expecting ')' in /in/leN7E on line 3
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `')'' in /in/leN7E on line 3
Process exited with code 255.