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
  • 相关阅读:
    一例智能网卡(mellanox)的网卡故障分析
    jbd2的死锁分析
    一个dcache的性能问题分析
    systemd之导致内核 crash
    开源堡垒机teleport测试
    WSL2添加网络代理,通过宿主机代理出国.
    MongoDB数据库备份操作
    保姆级Mongodb部署教程
    Linux-XZ压缩命令
    eclipse运行Java代码报错:NoClassDefFoundError: javax/xml/bind/*
  • 原文地址:https://www.cnblogs.com/afish/p/3991290.html
Copyright © 2011-2022 走看看