用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程序中的常见漏洞进行攻击
Oct 09 PHP
实用函数4
Nov 08 PHP
php array_slice函数的使用以及参数详解
Aug 30 PHP
php连接mssql的一些相关经验及注意事项
Feb 05 PHP
php打开文件fopen函数的使用说明
Jul 05 PHP
PHP会话控制:Session与Cookie详解
Sep 27 PHP
PHP中JSON的应用技巧
Oct 10 PHP
PHP内存使用情况如何获取
Oct 10 PHP
php 魔术常量详解及实例代码
Dec 04 PHP
ThinkPHP 3.2.2实现事务操作的方法
May 05 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 PHP
PHP isset()及empty()用法区别详解
Aug 29 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中auto_prepend_file与auto_append_file用法实例分析
2014/09/22 PHP
PHP经典面试题之设计模式(经常遇到)
2015/10/15 PHP
PHP 微信扫码支付源代码(推荐)
2016/11/03 PHP
PHP语言对接抖音快手小红书视频/图片去水印API接口源码
2020/08/11 PHP
关于在IE下的一个安全BUG --可用于跟踪用户的系统鼠标位置
2013/04/17 Javascript
js函数定时器实现定时读取系统实时连接数
2014/04/30 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
2015/11/30 Javascript
jquery根据td给相同tr下其他td赋值的实现方法
2016/10/05 Javascript
Json对象和字符串互相转换json数据拼接和JSON使用方式详细介绍(小结)
2016/10/25 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
2017/03/10 Javascript
ES6生成器用法实例分析
2017/04/10 Javascript
Swiper自定义分页器使用详解
2017/12/28 Javascript
如何制作一个Node命令行图像识别工具
2018/12/12 Javascript
JavaScript之实现一个简单的Vue示例
2019/01/17 Javascript
Vue框架TypeScript装饰器使用指南小结
2019/02/18 Javascript
深度了解vue.js中hooks的相关知识
2019/06/14 Javascript
[28:57]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/16 DOTA
Python安装使用命令行交互模块pexpect的基础教程
2016/05/12 Python
Python爬取网易云音乐上评论火爆的歌曲
2017/01/19 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
详解python opencv、scikit-image和PIL图像处理库比较
2019/12/26 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
2020/12/07 Python
世界排名第一的万圣节服装店:Spirit Halloween
2018/10/16 全球购物
法国床上用品商店:La Compagnie du lit
2019/12/26 全球购物
介绍一下#error预处理
2015/09/25 面试题
线程问题:wait()方法是定义在哪个类里面
2015/07/07 面试题
外贸英语毕业生自荐信
2013/11/14 职场文书
保安员岗位职责
2013/11/17 职场文书
将相和教学反思
2014/02/04 职场文书
公司经理任命书
2014/06/05 职场文书
信访工作汇报材料
2014/10/27 职场文书
护士岗前培训心得体会
2016/01/08 职场文书
小学2016年第十八届推普周活动总结
2016/04/05 职场文书
高中班主任寄语
2019/06/21 职场文书
2020年个人安全保证书参考模板
2020/01/08 职场文书
浅谈python数据类型及其操作
2021/05/25 Python