php检测文件编码的方法示例

 更新时间:2014年04月25日 10:52:12   作者:  
这篇文章主要介绍了php检测文件编码的方法示例,需要的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

关于文件编码的检测,百度一下一大把都是,但是确实没有能用的、很多人建议 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 "";
}

相关文章

  • ThinkPHP 3.2 版本升级了哪些内容

    ThinkPHP 3.2 版本升级了哪些内容

    ThinkPHP 3.2发布了挺长时间了,这里也总结下这次ThinkPHP 3.2到底发生了哪些变化,方便程序员们进行开发。
    2015-03-03
  • php redis setnx分布式锁简单原理解析

    php redis setnx分布式锁简单原理解析

    这篇文章主要介绍了php redis setnx分布式锁简单原理解析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • 使用PHP?MySQL实现数据量小的内容推荐方法

    使用PHP?MySQL实现数据量小的内容推荐方法

    这篇文章主要为大家介绍了使用PHP?MySQL实现数据量小的内容推荐方法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • php 反斜杠处理函数addslashes()和stripslashes()实例详解

    php 反斜杠处理函数addslashes()和stripslashes()实例详解

    PHP自带的库函数 addslashes() 和 stripslashes() 都属于字符串处理类函数, 本文章向大家介绍php 反斜杠处理函数addslashes()和stripslashes(),需要的朋友可以参考下
    2016-12-12
  • PHP上传图片、删除图片简单实例

    PHP上传图片、删除图片简单实例

    这篇文章主要介绍了PHP上传图片、删除图片简单实例的相关资料,并附实现代码实例,需要的朋友可以参考下
    2016-11-11
  • 浅析php如何实现App常用的秒发功能

    浅析php如何实现App常用的秒发功能

    很多社交软件都是用了一种秒发机制,让用户的体检感很好,今天我们也来谈谈这些社交软件中常用的小技巧。
    2016-08-08
  • laravel 5.1下php artisan migrate的使用注意事项总结

    laravel 5.1下php artisan migrate的使用注意事项总结

    这篇文章主要给大家总结介绍了在laravel 5.1下php artisan migrate的使用注意事项,文中介绍的非常详细,对大家使用php artisan migrate具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-06-06
  • php实现QQ小程序发送模板消息功能

    php实现QQ小程序发送模板消息功能

    QQ小程序群里有伙伴要发送模板消息的代码,所以今天给大家分享QQ小程序模板消息发布,绝对一步一步带着大家走,每个细节都讲到,感兴趣的朋友跟随小编一起看看吧
    2019-09-09
  • PHP如何初始化PDO及原始SQL语句操作

    PHP如何初始化PDO及原始SQL语句操作

    PDO 已经是 PHP 中操作数据库事实上的标准。包括现在的框架和各种类库,都是以 PDO 作为数据库的连接方式。基本上只有我们自己在写简单的测试代码或者小的功能时会使用 mysqli 来操作数据库。注意,普通的 mysql 扩展已经过时了哦!
    2021-06-06
  • TP3.2批量上传文件或图片 同名冲突问题的解决方法

    TP3.2批量上传文件或图片 同名冲突问题的解决方法

    这篇文章主要为大家详细介绍了TP3.2批量上传文件或图片,同名冲突问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08

最新评论

?


http://www.vxiaotou.com