php中确定编码格式,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:上面的函数中,可以自己多定义一些编码的类型或调整它们的顺序,这里主要为了效率只写几个!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值