在开发中,有时候会碰到bom引起的问题。直接上代码:

<?php
//remove the utf-8 boms
//by magicbug at gmail dot com
if (isset($_GET['dir'])){ //config the basedir
$basedir=$_GET['dir'];
}else{
$basedir = '.';
}
$auto = 1;
checkdir($basedir);
function checkdir($basedir){
if ($dh = opendir($basedir)) {
while (($file = readdir($dh)) !== false) {
if ($file != '.' && $file != '..'){
if (!is_dir($basedir."/".$file)) {
echo "filename: $basedir/
$file ".checkBOM("$basedir/$file")." <br>";
}else{
$dirname = $basedir."/".
$file;
checkdir($dirname);
}
}
}
closedir($dh);
}
}
function checkBOM ($filename) {
global $auto;
$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 ($auto == 1) {
$rest = substr($contents, 3);
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.");
}
function rewrite ($filename, $data) {
$filenum = fopen($filename, "w");
flock($filenum, LOCK_EX);
fwrite($filenum, $data);
fclose($filenum);
}
?>

转载于:https://blog.51cto.com/minren8/658849

PHP去掉Bom标记相关推荐

  1. php转换编码去掉bom,UTF-8编码怎么去掉BOM头?

    使用uft8编码或做页面的朋友会碰见过把页面保存时会发现页面是空白的但是页面确实有内容,后会会听说是bom头的问题,那么什么是bom头了,要如何解决因为bom头导致页面空白问题呢,下面我们一起来看看具 ...

  2. Word中去掉各种标记符号

    1.去掉word文档中的回车转行箭头 ①在「视图」菜单中把「显示段落标记」前面的勾(√)去掉. ②如果用上面的方法还不行,那是因为你在「工具」菜单中进行了统一的显示设置,取消方法如下: 工具→选项→视 ...

  3. Python 去掉BOM

    Python 去掉BOM BOM的全程是Byte Order Mark(定义字节顺序).我们开发测试代码的时候,我们既希望它能在windows上运行,也希望它能在Linux上运行,也就是系统无关,那么 ...

  4. Word 中如何标记修订?如何去掉修订标记只显示最终状态?

    您可能会邀请同事对您的文档做一个完善或是修改,可是您却希望能够知道他究竟修改了哪些地方,并且希望能够自主选择接受他的修改或是拒绝他的修改.那要如何实现这样的功能呢?我们使用Word的修订功能就可以轻松 ...

  5. IDEA中去掉参数标记

    IDEA中去掉参数标记 例如,在编写参数接收的代码时,会发现下面情况: 我们要去除这个参数标记,要这样设置: 然后再回到我的代码,发现那个 "s" 不见了.

  6. python3 字母的音符标记的统一规范,以及去掉音符标记

    音符标记: sño对于这样的字符串,字母上面有这种标记,叫做音符标记. ASCII()函数返回一个可打印的对象字符串方式表示,如果是非ascii字符就会输出\x,\u或\U等字符来表示.      这 ...

  7. 文本编辑BOM标记(Byte Order Mark)

    微软的自带记事本程序notepad.exe会给UTF-8编码的文件头加入三个隐藏的字节(即BOM).这是一种很愚蠢的做法.就是为了让编辑器不去猜测文件本身是ASCII码还是UTF-8. 什么是BOM ...

  8. mysql去bom头_使用editplus等编程工具时UTF-8编码去掉BOM头方法

    Unicode规范中有一个BOM的概念.BOM--Byte Order Mark,就是字节序标记.在这里找到一段关于BOM的说明: 在UCS 编码中有一个叫做"ZERO WIDTH NO-B ...

  9. asp.net去掉HTML标记代码

    ///   <summary>      ///   去除HTML标记     ///   </summary>    ///   <param   name=" ...

  10. 详解BOM头以及去掉BOM头的方法

    类似WINDOWS自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM).它是一串隐藏的字符,用于让记事本等编辑器识别 ...

最新文章

  1. ASP.NET运行原理
  2. Swift反射API及其用法
  3. linux c printf 打印输出null
  4. 2019幽门螺杆菌指南共识_《幽门螺杆菌感染基层诊疗指南(2019年)》发布! | 指南共识...
  5. Redis 6.0 源码阅读笔记(1) -- Redis 服务端启动及命令执行
  6. Python返回Json格式定义的例子
  7. 手机中文c语言编辑器,Turbo C中文(c语言编辑器)v3.7.8.9
  8. leetcode blind 75
  9. MiCT: Mixed 3D/2D convolutional tube for human action recognition
  10. 马上过年了,还在为没抢到回家的车票天天犯愁吗?这些好用的抢票神器赶紧用起来吧!...
  11. 微生活时光机:去项目中挖掘JS模块化简史
  12. 修改form表单action路径
  13. Java 给PDF文件添加水印
  14. 汉诺塔的非递归实现(借助堆栈模拟递归)
  15. 用python成为一名顶级黑客
  16. APP启动时白屏/黑屏 或者 Activity打开时白屏/黑屏
  17. 【通信原理】PC上调试MODBUS基本功能(附报文解析)
  18. win10安装ubuntu16.04双系统
  19. 基于vue大数据可视化(大屏展示)案例
  20. 机器学习最优化算法的演变,FTRL一路走来,从LR - SGD - TG - FOBOS - RDA - FTRL

热门文章

  1. Linux系统中打开文件数量的查看方法
  2. 如何使用STL寫XML轉檔程式? (C/C++) (STL) (Web) (XML)
  3. 【原创】大叔案例分享(4)定位分析--见证scala的强大
  4. oracle创建用户、创建表空间、授权、建表
  5. C# 注册Dll文件
  6. 深入理解java:2.3.4. 并发编程concurrent包 之容器ConcurrentLinkedQueue(非阻塞的并发队列---循环CAS)...
  7. 【Go命令教程】11. go vet 与 go tool vet
  8. GCAlloc 问题一则
  9. sql常识-LEFT JOIN
  10. 076 hashlib模块和hmac模块