php自动转换字符集函数,从thinkphp中提取

php自动转换字符集函数,这个是从thinkphp中提取出来的函数,可以单独利用。

支持数组转换,也就是数组下的所有变量转换成想要的字符集,

小阐明下此函数,先利用mb_convert_encoding转换字符集,不可再利用iconv转换。

<?php // 自动转换字符集 支持数组转换 function auto_charset($fContents, $from='gbk', $to='utf-8') { $from = strtoupper($from) == 'UTF8' ? 'utf-8' : $from; $to = strtoupper($to) == 'UTF8' ? 'utf-8' : $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; } } //测试内容 $ss = file_get_contents('test.html'); //test.html是gbk内容 echo auto_charset($ss); ?>

正常输出中文

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7886.html