自己写了一个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小偷的核心程序
Apr 09 PHP
php使用memcoder将视频转成mp4格式的方法
Mar 12 PHP
php实现从上传文件创建缩略图的方法
Apr 02 PHP
利用Fix Rss Feeds插件修复WordPress的Feed显示错误
Dec 19 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
May 18 PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
Jul 28 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
Dec 06 PHP
浅谈php中curl、fsockopen的应用
Dec 10 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
Jan 24 PHP
PHP基于正则批量替换Img中src内容实现获取缩略图的功能示例
Jun 07 PHP
php基于自定义函数记录log日志方法
Jul 21 PHP
php链式操作的实现方式分析
Aug 12 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
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
php通过pecl方式安装扩展的实例讲解
2018/02/02 PHP
thinkphp5 模型实例化获得数据对象的教程
2019/10/18 PHP
PHP程序员简单的开展服务治理架构操作详解(三)
2020/05/14 PHP
使用隐藏的new来创建对象
2011/03/29 Javascript
用JQUERY增删元素的代码
2012/02/14 Javascript
Javascript继承(上)——对象构建介绍
2012/11/08 Javascript
javascript计算用户打开网页的停留时间
2014/01/09 Javascript
轻松学习jQuery插件EasyUI EasyUI实现树形网络基本操作(2)
2015/11/30 Javascript
jQuery插件uploadify实现ajax效果的图片上传
2016/06/18 Javascript
Three.js学习之几何形状
2016/08/01 Javascript
详解Angular-ui-BootStrap组件的解释以及使用
2018/07/13 Javascript
vue-cli项目修改文件热重载失效的解决方法
2018/09/19 Javascript
vue实现循环切换动画
2018/10/17 Javascript
页面内锚点定位及跳转方法总结(推荐)
2019/04/24 Javascript
微信小程序HTTP请求从0到1封装
2019/09/09 Javascript
jQuery 查找元素操作实例小结
2019/10/02 jQuery
[01:02:10]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第一局
2016/02/26 DOTA
python使用百度翻译进行中翻英示例
2014/04/14 Python
python中使用urllib2获取http请求状态码的代码例子
2014/07/07 Python
Python-基础-入门 简介
2014/08/09 Python
Python连接DB2数据库
2016/08/27 Python
Python实现简单的多任务mysql转xml的方法
2017/02/08 Python
Python向MySQL批量插数据的实例讲解
2018/03/31 Python
Python集合基本概念与相关操作实例分析
2019/10/30 Python
Python django搭建layui提交表单,表格,图标的实例
2019/11/18 Python
使用Python的Turtle库绘制森林的实例
2019/12/18 Python
HTML5拖拽API经典实例详解
2018/04/20 HTML / CSS
《菜园里》教学反思
2014/04/17 职场文书
环保建议书100字
2014/05/14 职场文书
党员学习中共十八大报告思想汇报
2014/09/15 职场文书
工商管理专业毕业生自我鉴定2014
2014/10/04 职场文书
2015高考寄语集锦
2015/02/27 职场文书
2015年求职自荐信范文
2015/03/04 职场文书
素质教育培训心得体会
2016/01/19 职场文书
上帝为你开了一扇窗之Tkinter常用函数详解
2021/06/02 Python