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))));
}
此方式已將變量類型區分開來,用於和移動客戶端的數據交互