php 自动判断系统环境为linux或者windows并编码转换
/**
* 自动判断系统并编码转换
* @param $mixed
* @return array|false|string
*/
function code_conversion($mixed)
{
//php为7.1以上的版本,无需手动转换,php内部已经建立自动转换处理机制
if (version_compare(PHP_VERSION, '7.1') === -1) {
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
// /**
// * 将非GBK字符集的编码转为GBK
// *
// * @param mixed $mixed 源数据
// *
// * @return mixed GBK格式数据
// */
if (is_array($mixed)) {
foreach ($mixed as $k => $v) {
if (is_array($v)) {
$mixed[$k] = charsetToGBK($v);
} else {
$encode = mb_detect_encoding($v, array('ASCII', 'UTF-8', 'GB2312', 'GBK', 'BIG5'));
if ($encode == 'UTF-8') {
$mixed[$k] = iconv('UTF-8', 'GBK//ignore', $v);
}
}
}
} else {
$encode = mb_detect_encoding($mixed, array('ASCII', 'UTF-8', 'GB2312', 'GBK', 'BIG5'));
//var_dump($encode);
if ($encode == 'UTF-8') {
$mixed = iconv('UTF-8', 'GBK//ignore', $mixed);
}
}
} else {
// /**
// * 将非UTF-8字符集的编码转为UTF-8
// *
// * @param mixed $mixed 源数据
// *
// * @return mixed utf-8格式数据
// */
if (is_array($mixed)) {
foreach ($mixed as $k => $v) {
if (is_array($v)) {
$mixed[$k] = charsetToUTF8($v);
} else {
$encode = mb_detect_encoding($v, array('ASCII', 'UTF-8', 'GB2312', 'GBK', 'BIG5'));
if ($encode == 'EUC-CN') {
$mixed[$k] = iconv('GBK', 'UTF-8//ignore', $v);
}
}
}
} else {
$encode = mb_detect_encoding($mixed, array('ASCII', 'UTF-8', 'GB2312', 'GBK', 'BIG5'));
if ($encode == 'EUC-CN') {
$mixed = iconv('GBK', 'UTF-8//ignore', $mixed);
}
}
}
}
return $mixed;
}