php检测文件编码类型的方法
墨初 编程开发 1534阅读
用php写了一个文件上传的功能,但后台逻辑处理只能处理utf-8的文件格式,为了防止用户上传其它格式的文件,就写了一个判断文件内容编码格式的逻辑,下面73so博客就给大家分享一下。
php 判断文件内容编码的方法
利用php的内置函数 mb_convert_encoding() 来判断文件内容的编码格式。
/**
* @name 判断文件内容的编码格式
* @param file 文件在服务器上的绝对地址
*
* @return string 返回文件内容的编码
* @host https://www.73so.com
*/
function getcodetype($file)
{
$list = array('GBK', 'UTF-8', 'UTF-16LE', 'UTF-16BE', 'ISO-8859-1');
$str = file_get_contents($file);
foreach ($list as $item) {
$tmp = mb_convert_encoding($str, $item, $item);
if (md5($tmp) == md5($str)) {
return $item;
}
}
return null;
}
echo getcodetype('text.txt');
// UTF-8
echo getcodetype('user/code.php');
// UTF-8PS:上面编码中,可以自己多添加几个编码的类型。