php检测文件编码方法[非完美]
encoding
php
不
完美
建议
文件
方法
检测
编码
非
很多人建议 mb_detect_encoding 检测,可是不知为何我这不成功,什么都没输出、
看到有人写了个增强版,用 BOM 判断的,我果断就无视了,这东西完全不靠谱、
最终根据PHP手册里 mb_detect_encoding 函数下方的例子,自己写了一个检测函数,
还包括自动检测编码并按指点编码读取文件的函数、
源码献上,不喜勿喷。
网上的方法我试过没用才写的,说不定环境不一样导致的。
所以万一没用,也别喷我,我只是共享想思路而已、、
看到有人写了个增强版,用 BOM 判断的,我果断就无视了,这东西完全不靠谱、
最终根据PHP手册里 mb_detect_encoding 函数下方的例子,自己写了一个检测函数,
还包括自动检测编码并按指点编码读取文件的函数、
源码献上,不喜勿喷。
网上的方法我试过没用才写的,说不定环境不一样导致的。
所以万一没用,也别喷我,我只是共享想思路而已、、
<span 1</span> <?<span php </span><span 2</span> <span /*</span><span * </span><span 3</span> <span * 检测文件编码 </span><span 4</span> <span * @param string $file 文件路径 </span><span 5</span> <span * @return string|null 返回 编码名 或 null </span><span 6</span> <span */</span> <span 7</span> <span function</span> detect_encoding(<span $file</span><span ) { </span><span 8</span> <span $list</span> = <span array</span>('GBK', 'UTF-8', 'UTF-16LE', 'UTF-16BE', 'ISO-8859-1'<span ); </span><span 9</span> <span $str</span> = <span file_get_contents</span>(<span $file</span><span ); </span><span 10</span> <span foreach</span> (<span $list</span> <span as</span> <span $item</span><span ) { </span><span 11</span> <span $tmp</span> = mb_convert_encoding(<span $str</span>, <span $item</span>, <span $item</span><span ); </span><span 12</span> <span if</span> (<span md5</span>(<span $tmp</span>) == <span md5</span>(<span $str</span><span )) { </span><span 13</span> <span return</span> <span $item</span><span ; </span><span 14</span> <span } </span><span 15</span> <span } </span><span 16</span> <span return</span> <span null</span><span ; </span><span 17</span> <span } </span><span 18</span> <span 19</span> <span /*</span><span * </span><span 20</span> <span * 自动解析编码读入文件 </span><span 21</span> <span * @param string $file 文件路径 </span><span 22</span> <span * @param string $charset 读取编码 </span><span 23</span> <span * @return string 返回读取内容 </span><span 24</span> <span */</span> <span 25</span> <span function</span> auto_read(<span $file</span>, <span $charset</span>='UTF-8'<span ) { </span><span 26</span> <span $list</span> = <span array</span>('GBK', 'UTF-8', 'UTF-16LE', 'UTF-16BE', 'ISO-8859-1'<span ); </span><span 27</span> <span $str</span> = <span file_get_contents</span>(<span $file</span><span ); </span><span 28</span> <span foreach</span> (<span $list</span> <span as</span> <span $item</span><span ) { </span><span 29</span> <span $tmp</span> = mb_convert_encoding(<span $str</span>, <span $item</span>, <span $item</span><span ); </span><span 30</span> <span if</span> (<span md5</span>(<span $tmp</span>) == <span md5</span>(<span $str</span><span )) { </span><span 31</span> <span return</span> mb_convert_encoding(<span $str</span>, <span $charset</span>, <span $item</span><span ); </span><span 32</span> <span } </span><span 33</span> <span } </span><span 34</span> <span return</span> ""<span ; </span><span 35</span> }
登录后复制
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
刺客信条阴影:贝壳谜语解决方案
2 周前
By DDD
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前
By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

CakePHP 是 PHP 的开源框架。它的目的是使应用程序的开发、部署和维护变得更加容易。 CakePHP 基于类似 MVC 的架构,功能强大且易于掌握。模型、视图和控制器 gu

登录 CakePHP 是一项非常简单的任务。您只需使用一项功能即可。您可以记录任何后台进程(如 cronjob)的错误、异常、用户活动、用户采取的操作。在 CakePHP 中记录数据很容易。提供了 log() 函数

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

CakePHP 是一个开源MVC 框架。它使开发、部署和维护应用程序变得更加容易。 CakePHP 有许多库可以减少大多数常见任务的过载。
