【小编推荐】json 汉字强制不转换

2016-06-18   |   发布者:梁国芳   |   查看:3320次

php
  if (version_compare(PHP_VERSION, '5.4.0') >= 0) {
    function json_encode_ex($citys) {
         json_encode($citys, JSON_UNESCAPED_UNICODE);
    }
} else {
    function json_encode_ex($citys) {
        if ($citys === null)
            return 'null';
        if ($citys === true)
            return 'true';
        if ($citys === false)
            return 'false';
        static $reps = array(
            array("\\", "/", "\n", "\t", "\r", "\b", "\f", '"', ),
            array('\\\\', '\\/', '\\n', '\\t', '\\r', '\\b', '\\f', '\"', ),
        );
        if (is_scalar($citys))
            return '"' . str_replac($reps[0], $reps[1], (string) $citys) . '"';
        if (!is_array($citys))
            throw new Exception('JSON encoder error!');
        $isMap = false;
        $i = 0;
        foreach (array_keys($citys) as $k) {
            if (!is_int($k) || $i++ != $k) {
                $isMap = true;
                break;
            }
        }
        $s = array();
        if ($isMap) {
            foreach ($citys as $k => $v)
                $s[] = '"' . $k . '":' . call_user_func(__FUNCTION__, $v);
            return '{' . implode(',', $s) . '}';
        } else {
            foreach ($citys as $v)
                $s[] = call_user_func(__FUNCTION__, $v);
            return '[' . implode(',', $s) . ']';
        }
    }
}
echo json_encode_ex($citys);