hi,欢迎访问本站!
当前位置: 首页编程开发正文

php检测文件编码类型的方法

墨初 编程开发 63阅读

用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:上面编码中,可以自己多添加几个编码的类型。

声明:无特别说明,转载请标明本文来源!
发布评论
正文 取消