// 设定你要清除BOM的根目录(会自动扫描所有子目录和文件)

$HOME = dirname(__FILE__);

// 如果是Windows系统,修改为:$WIN = 1;

$WIN = 0;

?>

html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

UTF8 BOM 清除器

body { font-size: 10px; font-family: Arial, Helvetica, sans-serif; background: #FFF; color: #000; }

.FOUND { color: #F30; font-size: 14px; font-weight: bold; }

$BOMBED = array();

RecursiveFolder($HOME);

echo '

These files had UTF8 BOM, but i cleaned them:

';

foreach ($BOMBED as $utf) { echo $utf ."
\n"; }

echo '

';

// 递归扫描

function RecursiveFolder($sHOME) {

global $BOMBED, $WIN;

$win32 = ($WIN == 1) ? "\\" : "/";

$folder = dir($sHOME);

$foundfolders = array();

while ($file = $folder->read()) {

if($file != "." and $file != "..") {

if(filetype($sHOME . $win32 . $file) == "dir"){

$foundfolders[count($foundfolders)] = $sHOME . $win32 . $file;

} else {

$content = file_get_contents($sHOME . $win32 . $file);

$BOM = SearchBOM($content);

if ($BOM) {

$BOMBED[count($BOMBED)] = $sHOME . $win32 . $file;

// 移出BOM信息

$content = substr($content,3);

// 写回到原始文件

file_put_contents($sHOME . $win32 . $file, $content);

}

}

}

}

$folder->close();

if(count($foundfolders) > 0) {

foreach ($foundfolders as $folder) {

RecursiveFolder($folder, $win32);

}

}

}

// 搜索当前文件是否有BOM

function SearchBOM($string) {

if(substr($string,0,3) == pack("CCC",0xef,0xbb,0xbf)) return true;

return false;

}

?>

php的bom头会影响格式,phpBOM头(字符#65279;)出现的原因以及解决方法_PHP程序员博客|高蒙个人博客...相关推荐

  1. “存储为Web所用格式”命令是灰色不可用的原因和解决方法

    内容提要:文章介绍"存储为Web所用格式"命令是灰色不可用的原因和解决方法.学习 PS教程请加PS学习交流群:142574315 Q:今天群里有人咨询"存储为Web所用格 ...

  2. Java读取UTF-8格式txt文件第一行出现乱码及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法(转载)...

    原文地址:http://blog.csdn.net/jackpk/article/details/5702964/ Java读取UTF-8的txt文件第一行出现乱码"?"及解决 t ...

  3. Java读带有BOM的UTF-8文件乱码原因及解决方法(转)

    转载:http://www.linuxidc.com/Linux/2012-12/76707.htm 最近在处理文件时发现了同样类型的文件使用的编码可能是不同的.所以想将文件的格式统一一下(因为UTF ...

  4. Java读带有BOM的UTF-8文件乱码原因及解决方法

    Java读带有BOM的UTF-8文件乱码原因及解决方法 Java读带有BOM的UTF-8文件乱码原因及解决方法 - daimojingdeyu - ITeye技术网站 Java读带有BOM的UTF-8 ...

  5. u盘被分区之后怎么合并linux,U盘格式化做启动盘后从16GB变成200MB的解决方法

    之前使用U盘安装Linux时使用一个16GB的SanDisk U盘做了Linux系统的启动盘.想用这个U盘来给Windows 10做安装盘的时候突然发现这个U盘在Windows下可见空间只有200M了 ...

  6. javah导出类的头文件抛出异常——java.lang.IllegalArgumentException: Not a valid class name(原因及解决方法)

    [0]README 0.1) 本文旨在给出 java.lang.IllegalArgumentException 异常的原因 和 处理方法, 该异常和 javah 没有半毛钱关系 : 0.2) 本文附 ...

  7. php der格式 证书,php读取der格式证书乱码解决方法_PHP教程

    php读取der格式证书乱码解决方法 这篇文章主要介绍了php读取der格式证书乱码解决方法的相关资料,需要的朋友可以参考下 遇到的问题: 我的项目需要用到应用der格式的证书公钥及RSA算法来验签相 ...

  8. js赋值改变后原来的东西也改变了,影响了好几个其它使用同一个源数据的原因以及解决方法

    [原因]:数组赋值目测在php/js这两种语言中的赋值都是应用传递(所谓引用传递就是所谓的赋值其就是共享同一个地址),一般的字串整型等数据类型都是值传递所以不存在这类情况 [解决方法]:在进行数组间赋 ...

  9. 【UE4】导入FBX格式文件后呈现人物躺着情况的解决方法

    问题描述 在Maya中,将fbx文件添加根节点之后导入UE4中,发现动画蓝图呈现躺着情况. 原因是因为Maya中的数轴设置和UE4中有区别,所以会出现下图情况 本篇文章将会介绍如何不通过Maya直接在 ...

最新文章

  1. python的优点和缺点-python的优点和缺点是什么?
  2. 【模型训练】SGD的那些变种,真的比SGD强吗
  3. Windows Azure Tools DSInit Error
  4. [BZOJ 2243] 染色
  5. sort,uniq,wc指令简单用法
  6. gitd mysql_MySQL GTID (一)
  7. ArcGIS JS API 4 —— GET https://static.arcgis.com/fonts/simsun-regular/37888-38143.pbf 404
  8. 配置HistoryServer
  9. qlistwidgetitem itempressed怎么区分左右键_那个帮你把魂斗罗玩通关的男人,去世了!那年暑假的“上上下下左右左右BABA”,你还记得吗?...
  10. Atitit 资源清理之道与gc之道 gc算法 清理临时表 临时资源 使用的算法类型是 引用计数(reference counting),基于时间过期自动清理资源 1. 3.1. 从各种
  11. 随笔记--深浅拷贝问题
  12. word保存不了磁盘已满_【Word技巧】word使用终极技巧,工程人必会(二)
  13. 银行业会计人员技能训练系统(含文字录入、小键盘、点钞)
  14. 监视Python程式自动退出,并重新启动程式
  15. MySQL数据库与身份认证(鉴权)学习、复习笔记
  16. 认知学习:当代学习理论的主流
  17. 京东架构师讲解京东是如何优化列表页的
  18. VMware Ubuntu18.04与WIN7共享目录
  19. 怎样学习C语言——快速上手C语言系列之—什么是指针
  20. mac系统共享服务器,mac共享服务器

热门文章

  1. Java利用Qrcode生成二维码
  2. 最爱莫乎生命,其次是“你”
  3. (原创)datagrid数据导出到excel文件给客户端下载的几种方法
  4. Spring: DispacherServlet和ContextLoaderListener中的WebApplicationContext的关系
  5. 普通用户 fork报错 fork: retry: No child processes 解决方法
  6. CloudFlare 免费CDN加速 使用方法
  7. linux系统 克隆 恢复 Clonezilla 再生龙 使用
  8. linux shell 统计行数的8种方法
  9. docker 时间不一致,时区设置
  10. linux ssh 连接错误 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!