此文件用于快速测试UTF8编码的文件是不是加了BOM,并可自动移除

增加了检测子文件夹和排除不要检测的文件夹,转载的很好用。

<?php
/*** 此文件用于快速测试UTF8编码的文件是不是加了BOM,并可自动移除 * 增加了检测子文件夹和排除不要检测的文件夹* * @author yangzy*/
$bom = new bom();
$bom->run();
class bom
{public $basedir = ".";//修改此行为需要检测的目录,点表示当前目录public $auto = '1';//是否自动移除发现的BOM信息。1为是,0为否。public $file_arr = array('.svn','p_w_picpaths','data','shop','temp');//不需要检测文件夹public function __construct(){}/*** 运行程序*/public function run($basedir = ''){$basedir || $basedir = $this->basedir;if ($dh = opendir($basedir)) {while (($file = readdir($dh)) !== false) {if ($file!='.' && $file!='..' && !is_dir($basedir."/".$file)){echo $basedir."/".$file.':'.$this->checkBOM($basedir."/$file")." <br>";}elseif ($file!='.' && !in_array($file, $this->file_arr) && $file!='..' && is_dir($basedir."/".$file)){$this->run($basedir."/".$file);}}closedir($dh);}}/*** 检测bom文件*/public function checkBOM($filename){$contents=file_get_contents($filename);$charset[1]=substr($contents, 0, 1);$charset[2]=substr($contents, 1, 1);$charset[3]=substr($contents, 2, 1);if (ord($charset[1])==239 && ord($charset[2])==187 && ord($charset[3])==191) {if ($this->auto == 1) {$rest=substr($contents, 3);$this->rewrite ($filename, $rest);return ("<font color=red>BOM found, automatically removed.</font>");} else {return ("<font color=red>BOM found.</font>");}}else return ("BOM Not Found.");}/*** 重新生成文件*/public function rewrite($filename, $data){$filenum=fopen($filename,"w");flock($filenum,LOCK_EX);fwrite($filenum,$data);fclose($filenum);}
}

转载于:https://blog.51cto.com/hnllyrp/1344386

快速测试UTF8编码的文件是不是加了BOM,不限PHP相关推荐

  1. JAVA输出带BOM的UTF-8编码的文件

    https://blog.csdn.net/comeonyangzi/article/details/81708134 当从http 的response输出CSV文件的时候,设置为utf8的时候默认是 ...

  2. C++将UTF-8编码的文件转化为GB2312编码

    C++将UTF-8编码的文件转化为GB2312编码 我需要对一个html网页进行解析,html是使用UTF-8编码的.但是,我使用的visual Studio 19是使用gb2312进行编码的.当读入 ...

  3. 解决 Excel 打开 UTF-8 编码 CSV 文件乱码的 BUG

    直接用 Excel 2013 打开 UTF-8 编码的 CSV 文件会导致汉字 出现乱码. 原因可能是 Excel 以 ANSI 格式 打开,不会做编码识别. 打开 UTF-8 编码的 CSV 文件的 ...

  4. 【转】刨根究底字符编码之十一——UTF-8编码方式与字节序标记BOM

    一.UTF-8编码方式 1. 接下来将分别介绍Unicode字符集的三种编码方式:UTF-8.UTF-16.UTF-32.这里先介绍应用最为广泛的UTF-8. 为满足基于ASCII.面向字节的字符处理 ...

  5. 解决Excel打开UTF-8编码CSV文件乱码的问题

    最近在用QT读写CSV文件,发现将数据写入到CSV文件中,使用记事本打开文件是正常的,使用Excel打开,中文是乱码的,下面把原因和解决方法记录一下. 问题产生的原因 为什么excel打开utf-8存 ...

  6. Excel打开UTF-8编码CSV文件乱码的问题

    Excel乱码解决 场景 方法1:数据导入 方法2:指定格式导出 问题产生的原因 场景 在阿里云数仓用tunnel download导出来的CSV文件编码格式是UTF-8的,用Excel打开时就会出现 ...

  7. 解决Excel打开UTF-8编码CSV文件乱码的问题亲测有效

    前段时间用某软件导出了一个CSV文件,需要在Excel中处理并打印,但是我直接用Excel打开这个CSV文件却发现,文件中的所有中文字符都变成了乱码,经过自己的尝试,采用数据导入的方法解决了问题,后来 ...

  8. Matlab | MATLAB编辑器:无法使用GBK编码保存文件,请改用UTF-8编码保存文件(问题解决)

    ================================================ 博主github:https://github.com/MichaelBeechan 博主CSDN:h ...

  9. php 0xef 0xbb 0xbf,utf-8编码的csv文件,用excel打开乱码,解决办法,在输出前加 0xEF,0xBB,0xBF三个char...

    转自 http://blog.csdn.net/zcmssd/article/details/6086649 是由于输出的CSV文件中没有BOM. 什么是BOM? 在UCS 编码中有一个叫做" ...

  10. php文件代码采用UTF-8编码的BOM问题---转自CSDN---十方地藏---http://blog.csdn.net/webdesman...

    一个项目,代码编码均为utf-8编码,发现问题:在使用session的时候报错,错误如下: ------------------------------------------------- Warn ...

最新文章

  1. html5 原生 弹窗,一起来看 HTML 5.2 中新的原生元素 dialog
  2. 数字图像处理:第十一章基于特征向量的变换
  3. C# IntPtr 与 string互转
  4. “向前进,向钱进”上:自媒体的流量变现路
  5. Win10:tensorflow 学习笔记(1)
  6. boost创建线程池_Java并发 之 线程池系列 (1) 让多线程不再坑爹的线程池
  7. python3安装教程配置配置阿里云
  8. centos/linux下的安装Nginx
  9. summernote富文本编辑器配合validate表单验证无法进行表单提交的问题
  10. Django3 快速入门
  11. 海康、大华等安防摄像头、NVR、平台通过GB28181接入LieGBS国标流媒体服务
  12. 《菜鸟教程》丨2D骨骼动画工具DragonBones的使用教程
  13. canvas改变图片原始尺寸
  14. STM32F103ZET6的芯片工程改为STM32F103C8T6的工程
  15. 强国的语言与语言强国
  16. linux系统盘锁着,用Linux启动盘解决硬盘逻辑锁
  17. 实训1_获取产业数据并存储_预处理与简单分析
  18. neo4j-ogm-core使用小记
  19. Fatal error in launcher: Unable to create process using
  20. [电路]2-独立源和受控源

热门文章

  1. 如何直观的长时间统计Android应用的动态内存消耗
  2. 初级第二课——统计总分
  3. 2003 -服务器没有响应,PowerPoint2003
  4. 【知识蒸馏】Distilling the Knowledge in a Neural Network
  5. 用python分析拼多多_python:拼多多订单接口api
  6. sympy 求微分方程_Sympy笔记一
  7. html5 本地mysql_html5本地数据库(一)
  8. oracle相同sql执行计划不同,相同的SQL 在正式和测试环境中执行计划的不同
  9. 某计算机有五级中断L4,2011计算机基础考研组成原理部分
  10. 相关系数excel_《从EXCEL到PYTHON数据分析进阶指南》终结篇