用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 相关文章推荐
WINDOWS 2000下使用ISAPI方式安装PHP
Sep 05 PHP
基于mysql的论坛(7)
Oct 09 PHP
smarty巧妙处理iframe中内容页的代码
Mar 07 PHP
提高php运行速度的一些小技巧分享
Jul 03 PHP
PHP抓取、分析国内视频网站的视频信息工具类
Apr 02 PHP
PHP中使用memcache存储session的三种配置方法
Apr 05 PHP
一个基于phpQuery的php通用采集类分享
Apr 09 PHP
PHP中SQL查询语句的id=%d解释(推荐)
Dec 10 PHP
深入理解PHP中mt_rand()随机数的安全
Oct 12 PHP
thinkphp5.0自定义验证规则使用方法
Nov 16 PHP
PHP实现PDO操作mysql存储过程示例
Feb 13 PHP
laravel框架查询数据集转为数组的两种方法
Oct 10 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
PHP抓取网页、解析HTML常用的方法总结
2015/07/01 PHP
php+ajax实现无刷新分页
2015/11/18 PHP
php编程中echo用逗号和用点号连接的区别
2016/03/26 PHP
php解决DOM乱码的方法示例代码
2016/11/20 PHP
JavaScript作用域与作用域链深入解析
2013/12/06 Javascript
jQuery技巧之让任何组件都支持类似DOM的事件管理
2016/04/05 Javascript
AngularJs基本特性解析(一)
2016/07/21 Javascript
JavaScript算法系列之快速排序(Quicksort)算法实例详解
2016/09/04 Javascript
基于javascript实现的购物商城商品倒计时实例
2016/12/11 Javascript
JavaScript中this的用法及this在不同应用场景的作用解析
2017/04/13 Javascript
Vue响应式原理详解
2017/04/18 Javascript
在 Typescript 中使用可被复用的 Vue Mixin功能
2018/04/17 Javascript
JavaScript门道之标准库
2018/05/26 Javascript
AngularJS实现动态切换样式的方法分析
2018/06/26 Javascript
微信小程序实现带缩略图轮播效果
2018/11/04 Javascript
详解Vue.js中引入图片路径的几种方式
2019/06/17 Javascript
微信小程序可滑动周日历组件使用详解
2019/10/21 Javascript
vue 在methods中调用mounted的实现操作
2020/08/07 Javascript
python实现日常记账本小程序
2018/03/10 Python
PyQt5每天必学之事件与信号
2018/04/20 Python
浅析python中numpy包中的argsort函数的使用
2018/08/30 Python
Python 中包/模块的 `import` 操作代码
2019/04/22 Python
OpenCV 边缘检测
2019/07/10 Python
python如何处理程序无法打开
2020/06/16 Python
海蓝之谜(LA MER)澳大利亚官方商城:全球高端奢华护肤品牌
2017/10/27 全球购物
关于Assembly命名空间的三个面试题
2015/07/23 面试题
英语专业毕业生自荐信
2013/10/28 职场文书
船舶专业个人求职信范文
2014/01/02 职场文书
心理学专业求职信
2014/06/16 职场文书
单位在职证明书
2014/09/11 职场文书
全国爱牙日活动总结
2015/02/05 职场文书
专业技术职务聘任证明
2015/03/02 职场文书
银行自荐信范文
2015/03/25 职场文书
掌握这项技巧,一年阅读300本书不是梦
2019/09/12 职场文书
OpenCV实现反阈值二值化
2021/11/17 Java/Android
MyBatis核心源码深度剖析SQL语句执行过程
2022/05/20 Java/Android