美文网首页
PHP中用json_decode()无法解析有换行符的字符串

PHP中用json_decode()无法解析有换行符的字符串

作者: Yumazhiyao | 来源:发表于2017-09-11 13:44 被阅读985次

在做主站wap部分数据转移到子站prod.thinkful.cn时,出现了一些以json格式存储的数据无法正常解析的情况,所以研究了一下,PHP中使用json_decode()函数解析带有换行符的字符串时,会有解析失败返回NULL的情况,后来摸索着解决了问题,用函数封装了json的加、解方式(将json编码中文的函数也写在里面了):

// Chinese json
function enjson($code){
    $code = json_encode(urlencodeAry($code));
    return urldecode($code);
}
function urlencodeAry($data){
    if(is_array($data)){
        foreach($data as $key=>$val){
            $data[$key] = urlencodeAry($val);
        }
        return $data;
    }
    else{
        return urlencode($data);
    }
}
// Json decode
function dejson($str){
    $str = str_replace("\\", '\\\\', $str);
    $str = str_replace("\r\n", '\n', $str);
    return json_decode($str, 1);
}

后面只需要调用enjson()、dejson()即可,比较方便。

相关文章

网友评论

      本文标题:PHP中用json_decode()无法解析有换行符的字符串

      本文链接:https://www.haomeiwen.com/subject/sxffsxtx.html