摘要:在賦值時(shí)必須用反斜杠對(duì)標(biāo)示符進(jìn)行轉(zhuǎn)義二利用遞歸將數(shù)組轉(zhuǎn)碼編碼編碼相互轉(zhuǎn)換支持?jǐn)?shù)組字符串,支持?jǐn)?shù)組傳遞原字符串編碼輸出的字符串編碼
一、利用var_export(), eval()方法這里有兩種方法,都可以實(shí)現(xiàn)數(shù)組的編碼相互轉(zhuǎn)換。
/** ?*?將含有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); }
原理很簡(jiǎn)單 var_export設(shè)置第二個(gè)參數(shù)為true,返回?cái)?shù)組原型字符串,將字符串轉(zhuǎn)換為utf-8編碼,之后再用eval來執(zhí)行返回(類似匿名函數(shù)?),至此完美解決問題。
eval() 函數(shù)小結(jié):
? 條件:eval() 函數(shù)把字符串按照 PHP 代碼來計(jì)算。該字符串必須是合法的 PHP 代碼,且必須以分號(hào)結(jié)尾。
? 如果沒有在代碼字符串中調(diào)用 return 語句,則返回 NULL。如果代碼中存在解析錯(cuò)誤,則 eval() 函數(shù)返回 false。
? ?$a ="hello"; ? ?$res = ?eval("return $a;"); ? ?print_r($res); ? ? // 在賦值時(shí)必須用反斜杠對(duì)$標(biāo)示符進(jìn)行轉(zhuǎn)義 ? ? eval("$str = "$str";"); ? ? echo $str;二、利用遞歸將數(shù)組轉(zhuǎn)碼
/** ?*?UTF-8編碼 GBK編碼相互轉(zhuǎn)換/(支持?jǐn)?shù)組) ?* ?*?@param?array??$str??????????字符串,支持?jǐn)?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; } } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/30387.html
摘要:前后端交互過程中涉及的編碼首先,瀏覽器的設(shè)置里有設(shè)置編碼格式,一般設(shè)置為。按照設(shè)置的順序檢查檢測(cè)文件的編碼。 起因 最近在寫PHP,本身對(duì)PHP不太熟練。然后遇到編碼這個(gè)問題,困擾了大半天,索性,系統(tǒng)探索解決一番。 前后端交互過程中涉及的編碼 Browser cilent: 首先,瀏覽器的設(shè)置里有設(shè)置編碼格式,一般設(shè)置為UTF-8。 AJAX request: AJAX異步請(qǐng)求的過程...
摘要:前后端交互過程中涉及的編碼首先,瀏覽器的設(shè)置里有設(shè)置編碼格式,一般設(shè)置為。按照設(shè)置的順序檢查檢測(cè)文件的編碼。 起因 最近在寫PHP,本身對(duì)PHP不太熟練。然后遇到編碼這個(gè)問題,困擾了大半天,索性,系統(tǒng)探索解決一番。 前后端交互過程中涉及的編碼 Browser cilent: 首先,瀏覽器的設(shè)置里有設(shè)置編碼格式,一般設(shè)置為UTF-8。 AJAX request: AJAX異步請(qǐng)求的過程...
摘要:微信小程序開發(fā)官方文檔,正在開發(fā)的小程序的源碼,都給了我不少啟發(fā)到小程序上富文本的解析一個(gè)優(yōu)秀的開源項(xiàng)目微信小程序富文本解析組件作用在于解析你論壇上的帖子內(nèi)容,你論壇上加粗的文字,加了顏色的文字,圖片等等,都可以原原本本的展示在小程序中。 關(guān)于這個(gè)小程序 Github : https://github.com/DowneyL/di...‘ 這個(gè)小程序是公司針對(duì)一個(gè)自家產(chǎn)品的需求,而這個(gè)...
工作中常用的PHP函數(shù),整理出來,以方便后邊快速使用輪子。 1、字符串編碼轉(zhuǎn)換 /** ?*?字符串編碼轉(zhuǎn)換 ?*? ?*?@param??string??$str??????????待處理的字符 ?*?@param??string??$in_charset???輸入編碼 ?*?@param??string??$out_charset??輸出編碼 ?*?@return?string ?*/ fun...
閱讀 1050·2021-11-04 16:08
閱讀 3032·2021-09-13 10:37
閱讀 555·2019-08-30 15:56
閱讀 2085·2019-08-30 15:55
閱讀 2286·2019-08-30 15:53
閱讀 2140·2019-08-30 13:13
閱讀 2985·2019-08-30 12:51
閱讀 1588·2019-08-29 16:06