php5.4以后,json_encode支持是否对中文编码的模式,那之前的版本如何处理呢,直接上code
/**
* 扩展php自带的urlencode, 支持数组, 区分数值型和字符型
*
* @param mixed $data
* @return string
*/
public static function urlEncodeExt($data)
{
if(is_array($data)) {
foreach($data as $key=>$value) {
$data[strval($key)] = self::urlEncodeExt($value);
}
} else {
if (is_string($data)) {
$data = is_numeric($data) ? intval($data) : urlencode($data);
}
}
return $data;
}
/**
* 返回JSON数据(强类型方式)
*
* @param int $status 状态码(0=>error 1=>success)
* @param string $msg 返回信息
* @param mixed $data 返回数据
* @return string/json
*/
public static function responseJSON($status = 1, $msg = 'success', $data = null)
{
header('Content-type:application/json;charset=utf-8');
$response = array(
'status' => $status,
'msg' => $msg,
);
if (!empty($data)) {
$response['data'] = $data;
}
exit(urldecode(json_encode(self::urlEncodeExt($response))));
}
此方式已将变量类型区分开来,用于和移动客户端的数据交互