青剑开源代码:php兼容json_decode函数json2array

时间:15-05-17 栏目:网站开发 作者:admin 评论:0 点击: 2,904 次

php处理HTML中的JSON字符串时,有时会遇到一些只有JAVASCRIPT 引擎才能解析的JSON格式字符串,
比如KEY没有用引号包围等,本函数对此类JSON字符串使用兼容方式进行处理

/**
* php兼容json_decode函数
*
* @param $json string JSON字符串,支持非PHP标准的JSON格式,如:
{
            adminMemberId: "b2b-2009684904",
            contactList:[
                {name:"杨旎"}
            ]
        }
*  有一部分代码处理仅为支持taobao页面的数据作的优化
*        
*/
function json2array($json){

    if(!$json) return null;

    $json = preg_replace('@;(\d+):(\d+)@isU',';\\1*!*\\2',$json);				
    $json = str_replace('+new Date','0',$json);
    $json = str_replace('startTime:(0()),','',$json);			
    $json = str_replace(': now,',': "",',$json);
    $json = str_replace('{','array(',$json);
    $json = str_replace('}',')',$json);
    $json = str_replace('[','array(',$json);
    $json = str_replace(']',')',$json);
    $json = preg_replace('@([0-9a-z_]+)([\s]+)?:@isU','"\\1":',$json);
    $json = str_replace('":','"=>',$json);				
    $json = str_replace('"https"=>','https:',$json);
    $json = str_replace('"http"=>','http:',$json);

    $json = trim($json,';');
    $json = trim($json);
    $json = preg_replace('@;(\d+)\*\!\*(\d+)@isU',';\\1:\\2',$json);

    @eval('$c = '.$json.';');

    return $c;

}

声明: 本文由( admin )原创编译,转载请保留链接: 青剑开源代码:php兼容json_decode函数json2array

青剑开源代码:php兼容json_decode函数json2array:等您坐沙发呢!

发表评论


------====== 本站公告 ======------
联系信息:
lxq73061#qq.com qq:583964941
支付宝:https://me.alipay.com/lxq73061
相关插件程序等信息均会在站内发布,敬请关注。

读者排行