用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 相关文章推荐
PHP4之真OO
Oct 09 PHP
ob_start(),ob_start('ob_gzhandler')使用
Dec 25 PHP
几款免费开源的不用数据库的php的cms
Dec 19 PHP
php中使用Akismet防止垃圾评论的代码
Jun 10 PHP
浅析PHP中的字符串编码转换(自动识别原编码)
Jul 02 PHP
修改apache配置文件去除thinkphp url中的index.php
Jan 17 PHP
PHP中鲜为人知的10个函数
Feb 28 PHP
浅谈PHP调用Webservice思路及源码分享
Jun 04 PHP
PHP高手需要要掌握的知识点
Aug 21 PHP
Android App中DrawerLayout抽屉效果的菜单编写实例
Mar 21 PHP
thinkphp 字母函数详解T/I/N/D/M/A/R/U
Apr 03 PHP
Laravel实现搜索的时候分页并携带参数
Oct 15 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获取后台Job管理的实现代码
2011/06/10 PHP
检查用户名是否已在mysql中存在的php写法
2014/01/20 PHP
PHP+MySql+jQuery实现的&quot;顶&quot;和&quot;踩&quot;投票功能
2016/05/21 PHP
Yii框架Session与Cookie使用方法示例
2019/10/14 PHP
学习YUI.Ext 第四天--对话框Dialog的使用
2007/03/10 Javascript
js left,right,mid函数
2008/06/10 Javascript
javascript arguments 传递给函数的隐含参数
2009/08/21 Javascript
Jquery数独游戏解析(一)-页面布局
2010/11/05 Javascript
善用事件代理,警惕闭包的性能陷阱。
2011/01/20 Javascript
JavaScript下通过的XMLHttpRequest发送请求的代码
2011/06/28 Javascript
jquery操作checked属性以及disabled属性的多种方法
2014/06/20 Javascript
2014 年最热门的21款JavaScript框架推荐
2014/12/25 Javascript
AngularJS中的模块详解
2015/01/29 Javascript
在JavaScript中处理数组之reverse()方法的使用
2015/06/09 Javascript
javascript的BOM汇总
2015/07/16 Javascript
Javascript中数组去重与拍平的方法示例
2017/02/03 Javascript
关于Vue.nextTick()的正确使用方法浅析
2017/08/25 Javascript
react native 文字轮播的实现示例
2018/07/27 Javascript
Vue全局loading及错误提示的思路与实现
2019/08/09 Javascript
小程序和web画三角形实现解析
2019/09/02 Javascript
Python中join和split用法实例
2015/04/14 Python
python实现将元祖转换成数组的方法
2015/05/04 Python
python+django加载静态网页模板解析
2017/12/12 Python
浅谈Pycharm中的Python Console与Terminal
2019/01/17 Python
基于python使用tibco ems代码实例
2019/12/20 Python
使用python-cv2实现Harr+Adaboost人脸识别的示例
2020/10/27 Python
如何用Python编写一个电子考勤系统
2021/02/08 Python
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
2016/08/25 HTML / CSS
优秀教师的感人事迹
2014/02/04 职场文书
幼师求职自荐信
2014/05/31 职场文书
淘宝客服工作职责
2014/07/11 职场文书
2015年秋季小学开学典礼主持词
2015/07/16 职场文书
2015年第31个教师节致辞
2015/07/31 职场文书
python glom模块的使用简介
2021/04/13 Python
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
2021/06/09 Vue.js
vue postcss-px2rem 自适应布局
2022/05/15 Vue.js