看到網上很多都是使用eval這個危險函數去轉碼,如:
function array_iconv($in_charset,$out_charset,$arr)
{
return eval('return '.iconv($in_charset,$out_charset,var_export($arr,true).';'));
}
但是很多項目都是禁止一些危險函數的使用的,所以可以使用數組遍歷的方式去代替這個方法,做法很簡單:
// 第一個參數為當前編碼,第二個參數為轉換后的編碼,第三個參數是一維或者二維數組
function array_iconv($in_charset,$out_charset,$arr)
{
foreach($arr as $k => &$v){
if(is_array($v)){
foreach($v as $kk => &$vv){
$vv = iconv($in_charset,$out_charset,$vv);
}
}else{
$v = iconv($in_charset,$out_charset,$v);
}
}
return $arr;
}
ps: 剛入職的小菜鳥隨筆