用PHP去掉文件头的Unicode签名(BOM)方法


Posted in PHP onJune 22, 2017

废话不多说,直接上代码

<?php

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

//By Bob Shen

$basedir="."; //修改此行为需要检测的目录,点表示当前目录

$auto=1; //是否自动移除发现的BOM信息。1为是,0为否。

//以下不用改动

if ($dh = opendir($basedir)) {

while (($file = readdir($dh)) !== false) {

if ($file!='.' && $file!='..' && !is_dir($basedir."/".$file)) echo "filename: $file ".checkBOM("$basedir/$file")." <br>";

}

closedir($dh);

}

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) {
$rest=substr($contents, 3);
rewrite ($filename, $rest);
return true;
}
else return ("BOM Not Found.");
}

function rewrite ($filename, $data) {
$filenum=fopen($filename,"w");
flock($filenum,LOCK_EX);
fwrite($filenum,$data);
fclose($filenum);
}

?>

以上这篇用PHP去掉文件头的Unicode签名(BOM)方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php下防止单引号,双引号在接受页面转义的设置方法
Sep 25 PHP
一步一步学习PHP(6) 面向对象
Feb 16 PHP
php文件怎么打开 如何执行php文件
Dec 21 PHP
PHP数据流应用的一个简单实例
Sep 14 PHP
ThinkPHP3.1基础知识快速入门
Jun 19 PHP
php批量删除数据库下指定前缀的表以prefix_为例
Aug 24 PHP
php+ajax实现文章自动保存的方法
Dec 30 PHP
PHP实现事件机制实例分析
Jun 26 PHP
基于ThinkPHP实现批量删除
Dec 18 PHP
php str_replace替换指定次数的方法详解
May 05 PHP
PDO::getAttribute讲解
Jan 28 PHP
PHP封装的分页类与简单用法示例
Feb 25 PHP
PHP简单装饰器模式实现与用法示例
Jun 22 #PHP
PHP实现的简单适配器模式示例
Jun 22 #PHP
php smtp实现发送邮件功能
Jun 22 #PHP
php实现页面纯静态的实例代码
Jun 21 #PHP
详解php实现页面静态化原理
Jun 21 #PHP
PHP实现的观察者模式实例
Jun 21 #PHP
PHP构造二叉树算法示例
Jun 21 #PHP
You might like
从C/C++迁移到PHP——判断字符类型的函数
2006/10/09 PHP
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
2014/12/24 PHP
PHP使用mkdir创建多级目录的方法
2015/12/22 PHP
zend framework重定向方法小结
2016/05/28 PHP
laravel 5.4中实现无限级分类的方法示例
2017/07/27 PHP
php 截取中英文混合字符串的方法
2018/05/31 PHP
PHP+jQuery实现即点即改功能示例
2019/02/21 PHP
javascript 放大镜效果js组件 qsoft.PopBigImage.v0.35 加入了chrome支持
2009/04/07 Javascript
jQuery制作简洁的多级联动Select下拉框
2014/12/23 Javascript
JavaScript检测上传文件大小的方法
2015/07/22 Javascript
AngularJS入门教程中SQL实例详解
2016/07/27 Javascript
微信小程序 获取相册照片实例详解
2016/11/16 Javascript
node中Express 动态设置端口的方法
2017/08/04 Javascript
解决vue处理axios post请求传参的问题
2018/03/05 Javascript
详解Vue组件之间通信的七种方式
2019/04/14 Javascript
js实现页面多个日期时间倒计时效果
2019/06/20 Javascript
Python编程实现的简单神经网络算法示例
2018/01/26 Python
python使用time、datetime返回工作日列表实例代码
2019/05/09 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
2019/07/23 Python
通过字符串导入 Python 模块的方法详解
2019/10/27 Python
简单介绍django提供的加密算法
2019/12/18 Python
python在协程中增加任务实例操作
2021/02/28 Python
使用CSS3的::selection改变选中文本颜色的方法
2015/09/29 HTML / CSS
雷曼兄弟的五金店:Lehman’s Hardware Store
2019/04/10 全球购物
什么是servlet链?
2014/07/13 面试题
应届大专毕业生个人自荐信
2013/09/22 职场文书
考试作弊被抓检讨书
2014/01/10 职场文书
助人为乐表扬信范文
2014/01/14 职场文书
军神教学反思
2014/02/04 职场文书
高一新生军训感言
2014/03/02 职场文书
大学学生会竞选演讲稿
2014/04/25 职场文书
幼儿园五一劳动节活动总结
2015/02/09 职场文书
计算机专业自荐信
2015/03/05 职场文书
详解JS WebSocket断开原因和心跳机制
2021/05/07 Javascript
python爬取某网站原图作为壁纸
2021/06/02 Python
Redis监控工具RedisInsight安装与使用
2022/03/21 Redis