美文网首页
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