@ 2013-07-08T18:49:17Z <?php
if (!function_exists('json_encode')) {
function json_encode($it) {
if (!($assoc = is_object($it)) && !is_array($it)) {
return _js_enc_value($it);
}
$i = 0;
$it = (array)$it;
if (!$assoc) {
foreach ($it as $k => $v) {
if ($k !== $i) {
$assoc = true;
break;
}
$i++;
}
}
$data = array();
foreach ($it as $k => $v) {
$v = _js_enc_value($v);
if ($assoc) {
$k = _js_enc_value($k);
$data[] = $k . ':' . $v;
} else {
$data[] = $v;
}
}
if ($assoc) {
$bl = '{';
$br = '}';
} else {
$bl = '[';
$br = ']';
}
return $bl . implode(',', $data) . $br;
}
function _js_enc_value($value) {
switch (true) {
case is_array($value):
case is_object($value):
return json_encode($value);
case is_bool($value):
return $value ? 'true' : 'false';
case $value === null:
case is_resource($value) && _js_error():
return 'null';
case is_string($value):
return _js_uc_esc($value);
default:
return $value;
}
}
function _js_error() {
return trigger_error(
'json_encode(): type is unsupported, encoded as null',
E_USER_WARNING
);
}
function _js_uc_esc($value) {
if ($value !== mb_convert_encoding("UTF-8", "UTF-8", $value)) {
return 'null';
}
$pattern = "@[\x08-x010\x0c\x0d\\\\\"/]|([^\x08-\x10\x0c\x0d\x32-\x7f\\\\\"/])++@";
return '"' . preg_replace_callback($pattern, '_js_uc_esc_cb', $value) . '"';
}
function _js_uc_esc_cb($matches) {
switch (true) {
case isset($matches[1]):
$char = mb_convert_encoding($matches[0], 'UTF-16', 'UTF-8');
$str = '';
$len = strlen($char);
for ($i = 0; $i < $len; $i += 2) {
$str .= sprintf('\\u%02x%02x',
ord($char[$i]),
ord($char[$i + 1])
);
}
return $str;
default:
return addcslashes($matches[0], "\x08\x09\x10\x0c\x0d\\\"/");
}
}
}
$str = '';
for ($i=0;$i<=300;$i++) {
$str .= chr($i);
}
$str .= chr(127);
var_dump(json_encode(array("test" => $str));
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).
Version System time (s) User time (s) Memory (MiB) 5.4.17 0.010 0.041 12.41 5.4.16 0.012 0.041 12.40 5.4.15 0.012 0.044 12.40 5.4.14 0.009 0.043 12.09 5.4.13 0.010 0.038 12.07 5.4.12 0.018 0.052 12.04 5.4.11 0.010 0.043 12.03 5.4.10 0.010 0.039 12.03 5.4.9 0.010 0.047 12.03 5.4.8 0.010 0.048 12.03 5.4.7 0.014 0.039 12.03 5.4.6 0.010 0.042 12.03 5.4.5 0.008 0.046 12.03 5.4.4 0.012 0.040 12.01 5.4.3 0.009 0.040 12.01 5.4.2 0.011 0.036 12.01 5.4.1 0.012 0.046 12.01 5.4.0 0.010 0.039 11.50 5.3.26 0.010 0.043 12.72 5.3.25 0.011 0.041 12.72 5.3.24 0.010 0.041 12.72 5.3.23 0.010 0.042 12.71 5.3.22 0.011 0.040 12.68 5.3.21 0.012 0.041 12.68 5.3.20 0.010 0.041 12.68 5.3.19 0.011 0.042 12.68 5.3.18 0.013 0.047 12.68 5.3.17 0.013 0.049 12.68 5.3.16 0.014 0.049 12.67 5.3.15 0.012 0.039 12.67 5.3.14 0.009 0.041 12.67 5.3.13 0.012 0.044 12.66 5.3.12 0.011 0.042 12.66 5.3.11 0.011 0.040 12.66 5.3.10 0.012 0.037 12.14 5.3.9 0.010 0.040 12.12 5.3.8 0.013 0.044 12.10 5.3.7 0.011 0.044 12.10 5.3.6 0.013 0.040 12.09 5.3.5 0.017 0.049 12.03 5.3.4 0.012 0.042 12.03 5.3.3 0.011 0.038 12.00 5.3.2 0.009 0.039 11.78 5.3.1 0.009 0.038 11.75 5.3.0 0.010 0.040 11.73
preferences:dark mode live preview
141.9 ms | 1394 KiB | 7 Q