zoukankan      html  css  js  c++  java
  • php自定义json_encode()和json_decode()函数

    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;
    }
    }
    转载请注明出处!小鱼阁工作室 -专注zencart建站,织梦企业建站,ecshop商城,二次开发,产品采集,模板修改!技术QQ 631992791
  • 相关阅读:
    关于读取Unity 配置的方案
    有关于Node.js 的最简单的概念
    小小的储备知识:有关于读取section 节点的数据
    Discuz!NT 慢慢分析之开篇Config 的实现
    Additional notes in PHP source code auditing
    Zabbix 基于WEB企业级的系统与网络信息监视系统
    Web漏洞检查工具 Wapiti
    Safe3 网站DDOS防火墙
    Web杀毒v1.0
    免费开源安全网关Untangle
  • 原文地址:https://www.cnblogs.com/afish/p/3991290.html
Copyright © 2011-2022 走看看