@ 2013-07-08T19:42:09Z <?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($v);
$data[] = $k . ':' . $v;
} else {
$data[] = $v;
}
}
if ($assoc) {
$spl = '{';
$spr = '}';
} else {
$spl = '[';
$spr = ']';
}
return $spl . implode(',', $data) . $spr;
}
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):
return 'null';
case is_string($value):
return '"' . _js_uc_esc($value) . '"';
default:
return $value;
}
}
function _js_uc_esc($value) {
$pattern = "/\r|(\n)|((?:[^\x09\x0A\x0D\x20-\x7E]{3})+)/";
return preg_replace_callback($pattern, '_js_uc_esc_cb', $value);
}
function _js_uc_esc_cb($matches) {
switch (true) {
case isset($matches[2]):
$char = mb_convert_encoding($matches[2], '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;
case isset($matches[1]):
return '\\n';
default:
return '\\r';
}
}
}
$var = array(
array(
'text',
1,
1.1,
true,
false,
null,
array(),
new stdClass,
fopen('php://stdin', 'r'),
),
array(
'0' => 'hoge',
'1' => 'foo',
),
(object)array(
'0' => 'hoge',
'1' => 'foo',
),
array(
'0' => 'hoge',
'2' => 'foo',
),
(object)array(
'0' => 'hoge',
'2' => 'foo',
),
);
var_dump(json_encode($var));
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 5.5.0 - 5.5.38 , 5.6.0 - 5.6.40 , 7.0.0 - 7.0.33 , 7.1.0 - 7.1.33 , 7.2.0 - 7.2.33 , 7.3.0 - 7.3.33 , 7.4.0 - 7.4.33 , 8.0.0 - 8.0.30 , 8.1.0 - 8.1.28 , 8.2.0 - 8.2.18 , 8.3.0 - 8.3.6 bool(false)
Output for 5.3.3 - 5.3.29 , 5.4.0 - 5.4.45 Warning: json_encode(): type is unsupported, encoded as null in /in/nH5UE on line 111
string(127) "[["text",1,1.1,true,false,null,[],{},null],["hoge","foo"],{"0":"hoge","1":"foo"},{"0":"hoge","2":"foo"},{"0":"hoge","2":"foo"}]"
Output for 5.2.10 - 5.2.17 , 5.3.0 - 5.3.2 Warning: [json] (php_json_encode) type is unsupported, encoded as null in /in/nH5UE on line 111
string(127) "[["text",1,1.1,true,false,null,[],{},null],["hoge","foo"],{"0":"hoge","1":"foo"},{"0":"hoge","2":"foo"},{"0":"hoge","2":"foo"}]"
Output for 5.2.0 - 5.2.9 Warning: [json] (json_encode_r) type is unsupported, encoded as null. in /in/nH5UE on line 111
string(127) "[["text",1,1.1,true,false,null,[],{},null],["hoge","foo"],{"0":"hoge","1":"foo"},{"0":"hoge","2":"foo"},{"0":"hoge","2":"foo"}]"
Output for 4.3.0 - 4.3.11 , 4.4.0 - 4.4.9 , 5.0.0 - 5.0.5 , 5.1.0 - 5.1.6 string(154) "[["text",1,1.1,true,false,null,[],{},null],["hoge","foo"],{""hoge"":"hoge",""foo"":"foo"},{""hoge"":"hoge",""foo"":"foo"},{""hoge"":"hoge",""foo"":"foo"}]"
preferences:dark mode live preview
341.1 ms | 402 KiB | 460 Q