自己写了一个php检测文件编码的函数
2014-04-21 00:00
567 查看
关于文件编码的检测,百度一下一大把都是,但是确实没有能用的、
很多人建议 mb_detect_encoding 检测,可是不知为何我这不成功,什么都没输出、
看到有人写了个增强版,用 BOM 判断的,我果断就无视了,这东西完全不靠谱、
最终根据PHP手册里 mb_detect_encoding 函数下方的例子,自己写了一个检测函数,
还包括自动检测编码并按指点编码读取文件的函数、
源码献上,不喜勿喷。
网上的方法我试过没用才写的,说不定环境不一样导致的。
所以万一没用,也别喷我,我只是共享想思路而已、、
很多人建议 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 ""; }
相关文章推荐
- 写 5个不同的自己的函数来获取一个全路径的文件的扩展名, 允许封装php 库中已有 的函数(新浪)
- PHP中检测文件是否为UTF-8编码的函数
- 写5个不同的自己的函数,来截取一个全路径的文件的扩展名,允许封装php库中已有的函数。
- PHP面试题之写一个函数算出两个文件的相对路径
- javascript及php笔记:自己动手写一个ajax异步上传文件的jquery插件
- 自己简单写了一个php处理url普通模式变pathinfo模式函数
- PHP遍历一个文件夹下所有文件和子文件夹的函数
- PHP 检测字符串的编码是否是UTF-8编码的函数 check_utf8() 准确率最高的!
- PHP - Manual手册 - XL. Filesystem 文件系统函数 - is_dir判断给定文件名是否是一个目录
- 记录一个php强制下载文件函数
- 用PHP如何判断一个文件的编码?
- eclipse有时新建一个PHP文件或者是HTML文件没有快捷键太麻烦了,总要用鼠标点 怎么创建自己的快捷键呢?
- php 检测文件编码类型
- PHP写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。
- 自己写的一个php利用cookie记录浏览(商品)历史记录的函数
- php检测文件编码的方法示例
- PHP实现的一个保存远程文件到本地的函数分享
- php中检测变量是否是一个对象的is_object函数介绍及用法举例