PHP批量去除BOM头代码分享


Posted in PHP onJune 26, 2015
<?php 
/**
* 去除bom头信息
*/
header("Content-Type:text/html; charset=utf-8"); 

$auto = 1; 
checkdir("D:\wamp\www\sales"); 
function checkdir($basedir){ 
if ($dh = opendir($basedir)) { 
 while (($file = readdir($dh)) !== false) { 
  if ($file != '.' && $file != '..'){ 
  if (!is_dir($basedir."/".$file)) { 
   echo "文件名称: $basedir/$file ".checkBOM("$basedir/$file")." <br>"; 
  }else{ 
   $dirname = $basedir."/".$file; 
   checkdir($dirname); 
  } 
  } 
 } 
closedir($dh); 
} 
} 
function checkBOM ($filename) { 
global $auto; 
$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) { 
 if ($auto == 1) { 
  $rest = substr($contents, 3); 
  rewrite ($filename, $rest); 
  return ("<font color=red>发现BOM并且已自动删除</font>"); 
 } else { 
  return ("<font color=red>发现BOM</font>"); 
 } 
} 
else return ("没有发现BOM"); 
} 
function rewrite ($filename, $data) { 
$filenum = fopen($filename, "w"); 
flock($filenum, LOCK_EX); 
fwrite($filenum, $data); 
fclose($filenum); 
} 
?>
PHP 相关文章推荐
Zend引擎的发展 [15]
Oct 09 PHP
人大复印资料处理程序_补充篇
Oct 09 PHP
php版淘宝网查询商品接口代码示例
Jun 17 PHP
php上传文件问题汇总
Jan 30 PHP
php实现汉字验证码和算式验证码的方法
Mar 07 PHP
Zend Framework教程之Zend_Config_Ini用法分析
Mar 23 PHP
PHP制作登录异常ip检测功能的实例代码
Nov 16 PHP
PHP实现批量重命名某个文件夹下所有文件的方法
Sep 04 PHP
搜索附近的人PHP实现代码
Feb 11 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
Aug 27 PHP
php探针不显示内存解决方法
Sep 17 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
Mar 24 PHP
PHP多态代码实例
Jun 26 #PHP
PHP微信开发之二维码生成类
Jun 26 #PHP
Thinkphp关闭缓存的方法
Jun 26 #PHP
php获取、检查类名、函数名、方法名的函数方法
Jun 25 #PHP
php header函数的常用http头设置
Jun 25 #PHP
PHP里的单例类写法实例
Jun 25 #PHP
PHP合并数组+号和array_merge的区别
Jun 25 #PHP
You might like
PHP4(windows版本)中的COM函数
2006/10/09 PHP
关于PHP递归算法和应用方法介绍
2013/04/15 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
2014/09/29 PHP
PHP实现的自定义数组排序函数与排序类示例
2016/11/18 PHP
PHP一个简单的无需刷新爬虫
2019/01/05 PHP
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
2010/04/27 Javascript
javascript中强制执行toString()具体实现
2013/04/27 Javascript
JavaScript制作简单的日历效果
2016/03/10 Javascript
jquery实现点击弹出可放大居中及关闭的对话框(附demo源码下载)
2016/05/10 Javascript
AJAX实现瀑布流触发分页与分页触发瀑布流的方法
2016/05/23 Javascript
JavaScript从0开始构思表情插件
2016/07/26 Javascript
JavaScript实现刷新不重记的倒计时
2016/08/10 Javascript
AngularJs Managing Service Dependencies详解
2016/09/02 Javascript
JS扩展类,克隆对象与混合类实例分析
2016/11/26 Javascript
Avalonjs 实现简单购物车功能(实例代码)
2017/02/07 Javascript
vue-dialog的弹出层组件
2020/05/25 Javascript
vue如何集成raphael.js中国地图的方法示例
2017/08/15 Javascript
关于Promise 异步编程的实例讲解
2017/09/01 Javascript
[37:45]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS Orenda
2014/05/22 DOTA
python实现微信远程控制电脑
2018/02/22 Python
Django migrations 默认目录修改的方法教程
2018/09/28 Python
python面试题Python2.x和Python3.x的区别
2019/05/28 Python
python适合人工智能的理由和优势
2019/06/28 Python
python字典嵌套字典的情况下找到某个key的value详解
2019/07/10 Python
把django中admin后台界面的英文修改为中文显示的方法
2019/07/26 Python
django-crontab 定时执行任务方法的实现
2019/09/06 Python
Keras之fit_generator与train_on_batch用法
2020/06/17 Python
通过代码简单了解django model序列化作用
2020/11/12 Python
2014年班主任自我评价范文
2014/04/23 职场文书
通信工程求职信
2014/07/16 职场文书
法定授权委托证明书
2015/06/18 职场文书
本科毕业论文答辩稿
2015/06/23 职场文书
格林童话读书笔记
2015/06/30 职场文书
看看如何用Python绘制小米新版天价logo
2021/04/20 Python
python opencv人脸识别考勤系统的完整源码
2021/04/26 Python
解决vue-router的beforeRouteUpdate不能触发
2022/04/14 Vue.js