溫馨提示×

溫馨提示×

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

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

php數(shù)組如何轉(zhuǎn)編碼

發(fā)布時間:2021-04-01 10:58:33 來源:億速云 閱讀:120 作者:小新 欄目:編程語言

這篇文章主要介紹php數(shù)組如何轉(zhuǎn)編碼,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

php數(shù)組轉(zhuǎn)編碼的方法:1、利用“var_export()”和“eval()”方法將含有GBK的中文數(shù)組轉(zhuǎn)為utf-8;2、利用遞歸將數(shù)組轉(zhuǎn)碼。

PHP數(shù)組編碼gbk與utf8互相轉(zhuǎn)換的兩種方法

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

/**
 * 將含有GBK的中文數(shù)組轉(zhuǎn)為utf-8
 *
 * @param array $arr   數(shù)組
 * @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;
 // 這里轉(zhuǎn)碼之后可以輸出json
 // return json_encode($ret);
}

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

eval() 函數(shù)小結(jié):

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

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

 $a ="hello";

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

 print_r($res);

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

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

 echo $str;

二、利用遞歸將數(shù)組轉(zhuǎn)碼

/**
 * UTF-8編碼 GBK編碼相互轉(zhuǎn)換/(支持數(shù)組)
 *
 * @param array $str   字符串,支持數(shù)組傳遞
 * @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數(shù)組如何轉(zhuǎn)編碼”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI