php自定义json_encode()和json_decode()函数
2014-09-24 18:06
731 查看
json数据大家应该遇到过,json_encode()和json_decode()是php5.0以后加上的内置函数,如果低版本要使用,需加扩展,很多时候我们无权改变服务器的配置,我们只能通过自定义函数来实现这两个函数,其实所有的系统内置函数,基本上我们都是可以自己来定义的。
if (!function_exists('json_encode')) { function json_encode($array = array()) { if(!is_array($array)) return null; $json = ""; $i = 1; $comma = ","; $count = count($array); foreach($array as $k=>$v){ if($i==$count) $comma = ""; if(!is_array($v)){ $v = addslashes($v); $json .= '"'.$k.'":"'.$v.'"'.$comma; } else{ $json .= '"'.$k.'":'.json_encode($v).$comma; } $i++; } $json = '{'.$json.'}'; return $json; } } if (!function_exists('json_decode')) { function json_decode($json, $assoc = true) { $comment = false; $out = '$x='; $json = preg_replace('/:([^"}]+?)([,|}])/i', ':"\1″\2′, $json); for ($i=0; $i<strlen($json); $i++) { if (!$comment) { if (($json[$i] == '{') || ($json[$i] == '[')) { $out .= 'array('; } elseif (($json[$i] == '}') || ($json[$i] == ']')) { $out .= ')'; } elseif ($json[$i] == ':') { $out .= '=>'; } elseif ($json[$i] == ',') { $out .= ','; } elseif ($json[$i] == '"') { $out .= '"'; } } else $out .= $json[$i] == '$' ? '\$' : $json[$i]; if ($json[$i] == '"' && $json[($i-1)] != '\\') $comment = !$comment; } eval($out. ';'); return $x; } }
相关文章推荐
- 详解php中的json_encode()和json_decode()函数
- 转载--PHP json_encode() 和json_decode()函数介绍
- PHP常用函数(4)json_decode(),json_encode()
- 关于php中的json_encode()和json_decode()函数的一些说明
- php自定义编写的函数 代替json函数json_encode
- PHP json_encode() 函数介绍
- php之json_encode和json_decode
- PHP json_encode() 函数介绍
- php中json_decode()和json_encode()的使用方法
- 将PHP数组赋值给JS通过php系统函数json_encode()来实现
- PHP json_encode() 函数介绍
- php中json_encode与json_decode注意事项
- PHP json_encode() 函数介绍(二)
- PHP json_encode() 函数介绍
- PHP json_encode() 函数介绍
- (转载)PHP json_encode() 函数介绍
- PHP中json_encode、json_decode与serialize、unserialize的性能测试分析
- php中json_decode()和json_encode()的使用方法
- PHP中json_encode、json_decode与serialize、unserialize的性能测试
- php网站服务器没有json包(json_encode和json_decode)方法解决