用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 和 MySQL 基础教程(四)
Oct 09 PHP
谈谈PHP语法(2)
Oct 09 PHP
建站常用13种PHP开源CMS比较
Aug 23 PHP
php中通过正则表达式下载内容中的远程图片的函数代码
Jan 10 PHP
定义php常量的详解
Jun 09 PHP
yii2.0使用Plupload实现带缩放功能的多图上传
Dec 22 PHP
php中mkdir()函数的权限问题分析
Sep 24 PHP
php获取当前月与上个月月初及月末时间戳的方法
Dec 05 PHP
PHP实现断点续传乱序合并文件的方法
Sep 06 PHP
解决Laravel blade模板转义html标签的问题
Sep 03 PHP
php实现的简单多进程服务器类完整示例
Feb 01 PHP
tp5框架前台无限极导航菜单类实现方法分析
Mar 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文件操作实例代码
2012/05/10 PHP
javascript+php实现根据用户时区显示当地时间的方法
2015/03/11 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
学习YUI.Ext第七日-View&amp;JSONView Part Two-一个画室网站的案例
2007/03/10 Javascript
javascript基础知识大集锦(一) 推荐收藏
2011/01/13 Javascript
IE6/7/8/9不支持exec的简写方式
2011/05/25 Javascript
JavaScript中提前声明变量或函数例子
2014/11/12 Javascript
JS继承用法实例分析
2015/02/05 Javascript
JS动态显示表格上下frame的方法
2015/03/31 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
2015/10/20 Javascript
浅谈Javascript中的Label语句
2016/12/14 Javascript
node.js基于mongodb的搜索分页示例
2017/01/22 Javascript
用nodeJS搭建本地文件服务器的几种方法小结
2017/03/16 NodeJs
详解Vue中状态管理Vuex
2017/05/11 Javascript
JS实现页面打印(整体、局部)
2017/08/18 Javascript
详解JS转换数值函数Number()、parseInt()、parseFloat()
2018/08/24 Javascript
axios对请求各种异常情况处理的封装方法
2018/09/25 Javascript
基于vue实现移动端圆形旋钮插件效果
2018/11/28 Javascript
vue中多个倒计时实现代码实例
2019/03/27 Javascript
详解vue-cli3 中跨域解决方案
2019/04/10 Javascript
vue中利用Promise封装jsonp并调取数据
2019/06/18 Javascript
JavaScript在web自动化测试中的作用示例详解
2019/08/25 Javascript
JavaScript枚举选择jquery插件代码实例
2020/11/17 jQuery
Python3.6 Schedule模块定时任务(实例讲解)
2017/11/09 Python
PyQt5实现下载进度条效果
2018/04/19 Python
Windows下将Python文件打包成.EXE可执行文件的方法
2018/08/03 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
2019/09/04 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
2020/02/26 Python
python如何导出微信公众号文章方法详解
2020/08/31 Python
Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)
2021/02/22 Python
HTML5之SVG 2D入门13—svg对决canvas及长处和适用场景分析
2013/01/30 HTML / CSS
销售人员自我评价怎么写
2013/09/19 职场文书
历史系毕业生自荐信
2013/10/28 职场文书
校庆团日活动总结
2014/08/28 职场文书
入党积极分子党小组意见
2015/06/02 职场文书
公司中层管理培训心得体会
2016/01/11 职场文书