在做主站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()即可,比较方便。