作者:邱喷壶_381 | 来源:互联网 | 2018-03-23 14:01
php代码
// 自动转换字符集 支持数组转换
/*************************************************************
* 参数说明
* fContents:需要转换编码的数据源
* from:数据源内容编码
* to: 转换后的数据内容编码
*************************************************************/
function auto_charset($fContents, $from, $to) {
$from = strtoupper($from);
$to = strtoupper($to);
if (strtoupper($from) === strtoupper($to) || empty($fContents) || (is_scalar($fContents) && !is_string($fContents))) {
//如果编码相同或者非字符串标量则不转换
return $fContents;
}
if (is_string($fContents)) {
if (function_exists('mb_convert_encoding')) {
return mb_convert_encoding($fContents, $to, $from);
} elseif (function_exists('iconv')) {
return iconv($from, $to, $fContents);
} else {
return $fContents;
}
} elseif (is_array($fContents)) {
foreach ($fContents as $key => $val) {
$_key = auto_charset($key, $from, $to);
$fContents[$_key] = auto_charset($val, $from, $to);
if ($key != $_key)
unset($fContents[$key]);
}
return $fContents;
} else {
return $fContents;
}
}