国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP將數組編碼gbk和utf-8相互轉換

CodeSheep / 1856人閱讀

摘要:在賦值時必須用反斜杠對標示符進行轉義二利用遞歸將數組轉碼編碼編碼相互轉換支持數組字符串,支持數組傳遞原字符串編碼輸出的字符串編碼

這里有兩種方法,都可以實現數組的編碼相互轉換。

一、利用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;
    }
  }
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/30387.html

相關文章

  • 前后端交互過程中的編碼

    摘要:前后端交互過程中涉及的編碼首先,瀏覽器的設置里有設置編碼格式,一般設置為。按照設置的順序檢查檢測文件的編碼。 起因 最近在寫PHP,本身對PHP不太熟練。然后遇到編碼這個問題,困擾了大半天,索性,系統探索解決一番。 前后端交互過程中涉及的編碼 Browser cilent: 首先,瀏覽器的設置里有設置編碼格式,一般設置為UTF-8。 AJAX request: AJAX異步請求的過程...

    William_Sang 評論0 收藏0
  • 前后端交互過程中的編碼

    摘要:前后端交互過程中涉及的編碼首先,瀏覽器的設置里有設置編碼格式,一般設置為。按照設置的順序檢查檢測文件的編碼。 起因 最近在寫PHP,本身對PHP不太熟練。然后遇到編碼這個問題,困擾了大半天,索性,系統探索解決一番。 前后端交互過程中涉及的編碼 Browser cilent: 首先,瀏覽器的設置里有設置編碼格式,一般設置為UTF-8。 AJAX request: AJAX異步請求的過程...

    explorer_ddf 評論0 收藏0
  • 我的第一個小程序(Discuz! + 微信小程序)

    摘要:微信小程序開發官方文檔,正在開發的小程序的源碼,都給了我不少啟發到小程序上富文本的解析一個優秀的開源項目微信小程序富文本解析組件作用在于解析你論壇上的帖子內容,你論壇上加粗的文字,加了顏色的文字,圖片等等,都可以原原本本的展示在小程序中。 關于這個小程序 Github : https://github.com/DowneyL/di...‘ 這個小程序是公司針對一個自家產品的需求,而這個...

    YacaToy 評論0 收藏0
  • PHP常用函數整理

    工作中常用的PHP函數,整理出來,以方便后邊快速使用輪子。 1、字符串編碼轉換 /** ?*?字符串編碼轉換 ?*? ?*?@param??string??$str??????????待處理的字符 ?*?@param??string??$in_charset???輸入編碼 ?*?@param??string??$out_charset??輸出編碼 ?*?@return?string ?*/ fun...

    lijy91 評論0 收藏0

發表評論

0條評論

CodeSheep

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<