看到网上很多都是使用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: 刚入职的小菜鸟随笔