自己写了一个php检测文件编码的函数


Posted in PHP onApril 21, 2014

关于文件编码的检测,百度一下一大把都是,但是确实没有能用的、
很多人建议 mb_detect_encoding 检测,可是不知为何我这不成功,什么都没输出、
看到有人写了个增强版,用 BOM 判断的,我果断就无视了,这东西完全不靠谱、
最终根据PHP手册里 mb_detect_encoding 函数下方的例子,自己写了一个检测函数,
还包括自动检测编码并按指点编码读取文件的函数、
源码献上,不喜勿喷。
网上的方法我试过没用才写的,说不定环境不一样导致的。
所以万一没用,也别喷我,我只是共享想思路而已、、

<?php 
/** 
* 检测文件编码 
* @param string $file 文件路径 
* @return string|null 返回 编码名 或 null 
*/ 
function detect_encoding($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; 
} /** 
* 自动解析编码读入文件 
* @param string $file 文件路径 
* @param string $charset 读取编码 
* @return string 返回读取内容 
*/ 
function auto_read($file, $charset='UTF-8') { 
$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 mb_convert_encoding($str, $charset, $item); 
} 
} 
return ""; 
}
PHP 相关文章推荐
写出高质量的PHP程序
Feb 04 PHP
PHP爆绝对路径方法收集整理
Sep 17 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
Feb 12 PHP
php生成zip文件类实例
Apr 07 PHP
php文件下载处理方法分析
Apr 22 PHP
Smarty模板简单配置与使用方法示例
May 23 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
Jun 13 PHP
php安全配置记录和常见错误梳理(总结)
Mar 28 PHP
PHP实现电商订单自动确认收货redis队列
May 17 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
Feb 19 PHP
Laravel 实现Controller向blade前台模板赋值的四种方式小结
Oct 22 PHP
PHP正则之正向预查与反向预查讲解与实例
Apr 06 PHP
CodeIgniter框架提示Disallowed Key Characters的解决办法
Apr 21 #PHP
PHP5中实现多态的两种方法实例分享
Apr 21 #PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
Apr 21 #PHP
PHP正则提取不包含指定网址的图片地址的例子
Apr 21 #PHP
phpmyadmin打开很慢的解决方法
Apr 21 #PHP
PHP递归删除目录几个代码实例
Apr 21 #PHP
PHP批量生成静态HTML的简单原理和方法
Apr 20 #PHP
You might like
收音机频率指针指示不准确和灵敏度低问题
2021/03/02 无线电
TMDPHP 模板引擎使用教程
2012/03/13 PHP
Thinkphp实现MySQL读写分离操作示例
2014/06/25 PHP
php运行时动态创建函数的方法
2015/03/16 PHP
PHP简单创建压缩图的方法
2016/08/24 PHP
php+layui数据表格实现数据分页渲染代码
2019/10/26 PHP
js 蒙版进度条(结合图片)
2010/03/10 Javascript
javascript学习笔记(十一) 正则表达式介绍
2012/06/20 Javascript
javascript 正则表达式相关应介绍
2012/11/27 Javascript
轻松创建nodejs服务器(10):处理上传图片
2014/12/18 NodeJs
jQuery动态修改超链接地址的方法
2015/02/13 Javascript
JS获取网页图片name属性的方法
2015/04/01 Javascript
javascript实现将文件保存到本地方法汇总
2015/07/26 Javascript
JavaScript数组复制详解
2017/02/02 Javascript
简单实现jquery隔行变色
2017/11/09 jQuery
深入理解vue-class-component源码阅读
2019/02/18 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
2019/12/09 Javascript
使用JavaScript通过前端发送电子邮件
2020/05/22 Javascript
Vue SPA 首屏优化方案
2021/02/26 Vue.js
[01:21]DOTA2周边文化主题展 神秘商店火热开售
2017/07/30 DOTA
[01:34]DAC2018主赛事第四日五佳镜头 Gh巨牙海民助Miracle-死里逃生
2018/04/07 DOTA
Python 编码处理-str与Unicode的区别
2016/09/06 Python
查看django执行的sql语句及消耗时间的两种方法
2018/05/29 Python
对numpy中二进制格式的数据存储与读取方法详解
2018/11/01 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
2019/06/25 Python
python3.6+django2.0+mysql搭建网站过程详解
2019/07/24 Python
Python 支持向量机分类器的实现
2020/01/15 Python
物流专业大学生的自我鉴定
2013/11/13 职场文书
医学专业五年以上个人求职信
2013/12/03 职场文书
《猴子种树》教学反思
2014/02/14 职场文书
市场推广策划方案
2014/06/02 职场文书
法制宣传标语
2014/06/23 职场文书
法律讲堂观后感
2015/06/11 职场文书
无犯罪记录证明样本
2015/06/16 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书
一文搞懂Redis中String数据类型
2022/04/03 Redis