91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用PHP怎么將數組的gbk編碼與utf8編碼進行轉換

發布時間:2021-02-19 17:20:24 來源:億速云 閱讀:173 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關使用PHP怎么將數組的gbk編碼與utf8編碼進行轉換,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

一、利用var_export(), eval()方法

/**
 * 將含有GBK的中文數組轉為utf-8
 *
 * @param array $arr   數組
 * @param string $in_charset 原字符串編碼
 * @param string $out_charset 輸出的字符串編碼
 * @return array
 */
function array_iconv($arr, $in_charset="gbk", $out_charset="utf-8")
{
 $ret = eval('return '.iconv($in_charset,$out_charset,var_export($arr,true).';'));
 return $ret;
 // 這里轉碼之后可以輸出json
 // return json_encode($ret);
}

原理很簡單 var_export設置第二個參數為true,返回數組原型字符串,將字符串轉換為utf-8編碼,之后再用eval來執行返回(類似匿名函數?),至此完美解決問題。

eval() 函數小結:

  條件:eval() 函數把字符串按照 PHP 代碼來計算。該字符串必須是合法的 PHP 代碼,且必須以分號結尾。

  如果沒有在代碼字符串中調用 return 語句,則返回 NULL。如果代碼中存在解析錯誤,則 eval() 函數返回 false。

 $a ="hello";

 $res = eval("return $a;");

 print_r($res);

 // 在賦值時必須用反斜杠對$標示符進行轉義

 eval("\$str = \"$str\";");

 echo $str;

二、利用遞歸將數組轉碼

/**
 * UTF-8編碼 GBK編碼相互轉換/(支持數組)
 *
 * @param array $str   字符串,支持數組傳遞
 * @param string $in_charset 原字符串編碼
 * @param string $out_charset 輸出的字符串編碼
 * @return array
 */
function array_iconv($str, $in_charset="gbk", $out_charset="utf-8")
{
 if(is_array($str))
 {
 foreach($str as $k => $v)
 {
  $str[$k] = array_iconv($v);
 }
 return $str;
 }
 else
 {
 if(is_string($str))
 {
  // return iconv('UTF-8', 'GBK//IGNORE', $str);
  return mb_convert_encoding($str, $out_charset, $in_charset);
 }
 else
 {
  return $str;
 }
 }
}

關于使用PHP怎么將數組的gbk編碼與utf8編碼進行轉換就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

布拖县| 昭平县| 无为县| 萝北县| 宜宾县| 聂拉木县| 彰武县| 临西县| 宜春市| 宜黄县| 南宫市| 佛学| 喀什市| 海南省| 饶阳县| 莒南县| 嘉黎县| 仙游县| 永顺县| 永靖县| 萨迦县| 岳池县| 壶关县| 太谷县| 阿克苏市| 连江县| 保康县| 江北区| 临洮县| 北川| 密云县| 共和县| 高密市| 金华市| 新疆| 朝阳县| 正宁县| 邵东县| 分宜县| 浑源县| 新化县|