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
  • 相关阅读:
    Prony算法
    基于WeifenLuo.WinFormsUI.Docking界面布局控件的Winform框架
    C# 在父容器中显示子窗体
    如何识别高级的验证码
    我 .北漂的 80后男孩
    c# 主机和网络字节序的转换
    电网割集能量算法
    项目管理心得:一个项目经理的个人体会、经验总结
    Qt 登陆界面实现
    [ lucene FAQ ] 如何避免lucene queryparser中文分词的缺陷?[转]
  • 原文地址:https://www.cnblogs.com/afish/p/3991290.html
Copyright © 2011-2022 走看看