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 相关文章推荐
php的header和asp中的redirect比较
Oct 09 PHP
php编写的简单页面跳转功能实现代码
Nov 27 PHP
PHP扩展CURL的用法详解
Jun 20 PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
Jun 23 PHP
php查看当前Session的ID实例
Mar 16 PHP
PHP获取毫秒级时间戳的方法
Apr 15 PHP
PHP数组操作类实例
Jul 11 PHP
PHP面向对象详解(三)
Dec 07 PHP
一个简单的php路由类
May 29 PHP
Apache PHP MySql安装配置图文教程
Aug 27 PHP
PHP实现的简单操作SQLite数据库类与用法示例
Jun 19 PHP
php 字符串中是否包含指定字符串的多种方法
Apr 12 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
Uchome1.2 1.5 代码学习 common.php
2009/04/24 PHP
php实现只保留mysql中最新1000条记录
2015/06/18 PHP
php目录拷贝实现方法
2015/07/10 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
Laravel Validator 实现两个或多个字段联合索引唯一
2019/05/08 PHP
Jquery跨域获得Json时invalid label错误的解决办法
2011/01/11 Javascript
前台js调用后台方法示例
2013/12/02 Javascript
jquery文本框中的事件应用以输入邮箱为例
2014/05/06 Javascript
Nodejs异步回调的优雅处理方法
2014/09/25 NodeJs
jQuery实现标题有打字效果的焦点图代码
2015/11/16 Javascript
javascript实现图片轮播效果
2016/01/20 Javascript
JavaScript数据存储 Cookie篇
2016/07/02 Javascript
微信小程序实现图片自适应(支持多图)
2017/01/25 Javascript
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
2017/05/05 jQuery
基于Vue2x的图片预览插件的示例代码
2018/05/14 Javascript
安装vue-cli的简易过程
2018/05/22 Javascript
clipboard.js在移动端复制失败的解决方法
2018/06/13 Javascript
Angular6封装http请求的步骤详解
2018/08/13 Javascript
jquery实现烟花效果(面向对象)
2020/03/10 jQuery
详解vue3.0 diff算法的使用(超详细)
2020/07/01 Javascript
python模拟键盘输入 切换键盘布局过程解析
2019/08/15 Python
Tensorflow中tf.ConfigProto()的用法详解
2020/02/06 Python
windows支持哪个版本的python
2020/07/03 Python
Python连接Mysql进行增删改查的示例代码
2020/08/03 Python
python使用布隆过滤器的实现示例
2020/08/20 Python
详解python对象之间的交互
2020/09/29 Python
css3与html5实现响应式导航菜单(导航栏)效果分享
2014/02/12 HTML / CSS
Saks Fifth Avenue澳洲/亚太地区:萨克斯第五大道精品百货店
2019/06/09 全球购物
Java平台和其他软件平台有什么不同
2015/06/05 面试题
《小鹰学飞》教学反思
2014/04/23 职场文书
留学推荐信英文范文
2015/03/26 职场文书
毕业典礼主持词
2015/06/29 职场文书
学校2016年九九重阳节活动总结
2016/04/01 职场文书
浅谈mysql执行过程以及顺序
2021/05/12 MySQL
Java 死锁解决方案
2022/05/11 Java/Android