用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 相关文章推荐
打造计数器DIY三步曲(中)
Oct 09 PHP
php 代码优化之经典示例
Mar 24 PHP
PHP源码之explode使用说明
Aug 05 PHP
php解析html类库simple_html_dom(详细介绍)
Jul 05 PHP
php中session使用示例
Mar 29 PHP
PHP下通过QRCode类库创建中间带网站LOGO的二维码
Jul 12 PHP
php中array_multisort对多维数组排序的方法
Jun 21 PHP
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
Mar 06 PHP
php时间计算相关问题小结
May 09 PHP
PHP实现腾讯与百度坐标转换
Aug 05 PHP
PHP+Oracle本地开发环境搭建方法详解
Apr 01 PHP
php7新特性的理解和比较总结
Apr 14 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
新的一年,新的期待:DC在2020年的四部动画电影
2020/01/01 欧美动漫
php的大小写敏感问题整理
2011/12/29 PHP
解析php session_set_save_handler 函数的用法(mysql)
2013/06/29 PHP
PHP以指定字段为索引返回数据库所取的数据数组
2013/06/30 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
input输入框的自动匹配(原生代码)
2013/03/19 Javascript
js中function()使用方法
2013/12/24 Javascript
IE下双击checkbox反应延迟问题的解决方法
2014/03/27 Javascript
JS右下角广告窗口代码(可收缩、展开及关闭)
2015/09/04 Javascript
Bootstrap modal使用及点击外部不消失的解决方法
2016/12/13 Javascript
Vue系列:通过vue-router如何传递参数示例
2017/01/16 Javascript
AjaxUpLoad.js实现文件上传
2018/03/05 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
2018/09/21 Javascript
微信小程序实现的图片保存功能示例
2019/04/24 Javascript
JS实现悬浮球只在一侧滑动并且是横屏状态下
2020/08/19 Javascript
vue组件讲解(is属性的用法)模板标签替换操作
2020/09/04 Javascript
[02:38]DOTA2亚洲邀请赛小组赛精彩集锦:Wings完美团击溃对手
2017/03/29 DOTA
[00:14]护身甲盾
2019/03/06 DOTA
Python之父谈Python的未来形式
2016/07/01 Python
详解Python在七牛云平台的应用(一)
2017/12/05 Python
python 给DataFrame增加index行名和columns列名的实现方法
2018/06/08 Python
python实现简单五子棋游戏
2019/06/18 Python
django之自定义软删除Model的方法
2019/08/14 Python
Windows下python3安装tkinter的问题及解决方法
2020/01/06 Python
查看jupyter notebook每个单元格运行时间实例
2020/04/22 Python
Python参数传递实现过程及原理详解
2020/05/14 Python
台湾SHOPRO购物行家:亚洲首创影视.3C.家电.优质购物平台
2018/05/07 全球购物
Wolford法国官网:奥地利奢侈内衣品牌
2020/08/11 全球购物
您熟悉ORM(Object-Relation Mapping)吗?请谈谈您所理解的ORM
2016/02/08 面试题
常用UNIX 命令(Linux的常用命令)
2015/12/26 面试题
投标服务承诺书
2014/05/28 职场文书
公务员爱岗敬业演讲稿
2014/08/26 职场文书
八项规定整改方案
2014/10/01 职场文书
2014年安全管理工作总结
2014/12/01 职场文书
飞屋环游记观后感
2015/06/08 职场文书
送给客户微信问候语!
2019/07/04 职场文书