php检测文件编码类型的方法
墨初 编程开发 873阅读
用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-8
PS:上面编码中,可以自己多添加几个编码的类型。