3v4l.org

run code in 300+ PHP versions simultaneously
<?php $source = json_encode([new StdClass, "This is a test", "Foo's bar", 1, 5]); var_dump(json_encode($source)); 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));
Output for git.master, git.master_jit, rfc.property-hooks
string(43) ""[{},\"This is a test\",\"Foo's bar\",1,5]"" string(88) "\x5b\x7b\x7d\x2c\x22This\x20is\x20a\x20test\x22\x2c\x22Foo\x27s\x20bar\x22\x2c1\x2c5\x5d"

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
51.55 ms | 401 KiB | 8 Q