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

不要因为一时的失败和挫折,就忘记以往壮志满满说过要去的远方。人皆有爱生恶死之心,人皆为舍生取死之道。何也见善不明耳。

今天做php的一个上传TXT文件的小功能时,由于网站采用的是UTF-8编码的方式,所以需要对上传文件的编码进行判断,只有UTF-8编码的文本文件才可以上传,网上搜索了一些别人写的判断函数发现基本上不能用或者说判断的不准确,索性自己就研究了下写了一个,判断的准确率还可以!

php 判断文件编码的方法

定义一个php判断编码的函数

可以利用 php 中转换字符编码的函数 mb_convert_encoding(),对文件的内容进行不同的编码类型转换,再与原有的内容进行比较!

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;
}

函数调用

只需要传入要判断文件的路径即可,可以判断php文件,文本文件等,函数会输出文件的编码类型,如果输出为空则表示没有找到文件的编码类型!

echo getcodetype('text.txt');
// UTF-8
echo getcodetype('user/code.php');
// UTF-8

PS:上面的函数中,可以自己多定义一些编码的类型或调整它们的顺序,这里主要为了效率只写几个!

本文php检测文件编码类型的方法到此结束。要么读书,要么健身;一边养内,一边塑外;内美了自己,外养眼了别人。从此只有行动,没有抱怨的话。小编再次感谢大家对我们的支持!

您可能有感兴趣的文章
PHP性能优化案例分享

PHP实现短信验证码的发送次数限制

PHP中的异常处理机制深入讲解

PHP常见七种算法合集代码实例

PHP微信扫描二维码关注公众号后自动登录第三方网站