先对需要处理的数组的键值分别做urlencode处理,然后json_encode,最后做urldecode处理 。
function encode_json($str) {
return urldecode(json_encode(url_encode($str)));
}
/**
*@desc 递归的处理数组中的每一个键值对
*/
function url_encode($str) {
if(is_array($str)) {
foreach($str as $key=>$value) {
$str[urlencode($key)] = url_encode($value);
}
} else {
$str = urlencode($str);
}
return $str;
}