用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 相关文章推荐
Dedecms常用函数解析
Feb 01 PHP
PHP+MySQL 制作简单的留言本
Nov 02 PHP
字母顺序颠倒而单词顺序不变的php代码
Aug 08 PHP
用php随机生成福彩双色球号码的2种方法
Feb 04 PHP
探讨如何把session存入数据库
Jun 07 PHP
小谈php正则提取图片地址
Mar 27 PHP
PHP针对常规模板引擎中与CSS/JSON冲突的解决方法
Aug 19 PHP
php递归json类实例
Dec 02 PHP
Laravel 5框架学习之Eloquent (laravel 的ORM)
Apr 08 PHP
PHP中include/require/include_once/require_once使用心得
Aug 28 PHP
php字符串截取函数mb_substr用法实例分析
Jun 25 PHP
laravel 多图上传及图片的存储例子
Oct 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
php将数据库导出成excel的方法
2010/05/07 PHP
php生成静态文件的多种方法分享
2012/07/17 PHP
解析PHP 使用curl提交json格式数据
2013/06/29 PHP
phpMyAdmin自动登录和取消自动登录的配置方法
2014/05/12 PHP
php实现的一段简单概率相关代码
2016/05/30 PHP
js控制div及网页相关属性的代码
2009/12/19 Javascript
nodejs读取memcache示例分享
2014/01/02 NodeJs
JS实现静止元素自动移动示例
2014/04/14 Javascript
jQuery实现根据类型自动显示和隐藏表单
2015/03/18 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
2015/09/17 Javascript
AngularJS通过$http和服务器通信详解
2016/09/21 Javascript
深入理解JavaScript中的并行处理
2016/09/22 Javascript
zTree树形菜单交互选项卡效果的实现方法
2017/12/25 Javascript
nodejs简单访问及操作mysql数据库的方法示例
2018/03/15 NodeJs
使用gulp构建前端自动化的方法示例
2018/12/25 Javascript
通过实例解析json与jsonp原理及使用方法
2020/09/27 Javascript
JS操作JSON常用方法(10w阅读)
2020/12/06 Javascript
Handtrack.js库实现实时监测手部运动(推荐)
2021/02/08 Javascript
在Python的Django框架中加载模版的方法
2015/07/16 Python
Python初学时购物车程序练习实例(推荐)
2017/08/08 Python
解决python 无法加载downsample模型的问题
2018/10/25 Python
Python简单获取二维数组行列数的方法示例
2018/12/21 Python
python3 cvs将数据读取为字典的方法
2018/12/22 Python
python 对类的成员函数开启线程的方法
2019/01/22 Python
详解Python学习之安装pandas
2019/04/16 Python
Python学习笔记之集合的概念和简单使用示例
2019/08/22 Python
pycharm通过anaconda安装pyqt5的教程
2020/03/24 Python
设置jupyter中DataFrame的显示限制方式
2020/04/12 Python
基于Python的自媒体小助手---登录页面的实现代码
2020/06/29 Python
欧洲最大的拼图游戏商店:JigsawPuzzle.co.uk
2018/07/04 全球购物
如何开启linux的ssh服务
2015/02/14 面试题
标准毕业生自荐信范文
2013/11/04 职场文书
语文教育专业求职信
2014/06/28 职场文书
医院领导班子查摆问题对照检查材料思想汇报
2014/10/08 职场文书
楚门的世界观后感
2015/06/03 职场文书
解决MySQL添加新用户-ERROR 1045 (28000)的问题
2022/03/03 MySQL