程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> php中json_encode不兼容JSON_UNESCAPED_UNICODE的解決方案

php中json_encode不兼容JSON_UNESCAPED_UNICODE的解決方案

編輯:PHP綜合

PHP5.4才支持JSON_UNESCAPED_UNICODE這個參數,此參數是讓中文字符在json_encode的時候不用轉義,減少數據傳輸量。但在PHP5.3中,就得自己寫個函數來實現,以下就是解決方法:

/**
* 對變量進行 JSON 編碼
* @param mixed value 待編碼的 value ,除了resource 類型之外,可以為任何數據類型,該函數只能接受 UTF-8 編碼的數據
* @return string 返回 value 值的 JSON 形式
*/
function json_encode_ex($value)
{
 if (version_compare(PHP_VERSION,'5.4.0','<'))
 {
  $str = json_encode($value);
  $str = preg_replace_callback(
         "#\\\u([0-9a-f]{4})#i",
         function($matchs)
         {
           return iconv('UCS-2BE', 'UTF-8', pack('H4', $matchs[1]));
         },
          $str
         );
  return $str;
 }
 else
 {
  return json_encode($value, JSON_UNESCAPED_UNICODE);
 }
}

判斷PHP的版本,如果低於5.4則使用自定義函數來實現,如果是5.4及以上版本則使用JSON_UNESCAPED_UNICODE。

以上就是php中json_encode不兼容JSON_UNESCAPED_UNICODE的解決方案 ,希望能給大家一個參考,了解更多PHP的語法,大家可以關注《PHP5在線手冊》,也希望大家多多支持。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved