PHP批量检测并去除文件BOM头代码实例


Posted in PHP onMay 08, 2014

如下代码为PHP方式去除当前目录及子目录所有文件BOM信息的代码,新建文件,将其放倒根目录下,然后浏览器访问即可。

<?php
if (isset($_GET['dir'])) { //设置文件目录 
  $basedir = $_GET['dir'];
} else {
  $basedir = '.';
}

$auto = 1;
checkdir($basedir);

function checkdir($basedir)
{
  if ($dh = opendir($basedir)) {
    while (($file = readdir($dh)) !== false) {
      if ($file != '.' && $file != '..') {
        if (!is_dir($basedir . "/" . $file)) {
          echo "filename: $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 found, automatically removed.</font>");
    } else {
      return ("<font color="red">BOM found.</font>");
    }
  } else
    return ("BOM Not Found.");
}

function rewrite($filename, $data)
{
  $filenum = fopen($filename, "w");
  flock($filenum, LOCK_EX);
  fwrite($filenum, $data);
  fclose($filenum);
}
?>

当然脚本小编为大家找到了一个软件版本的检测工具:下载地址 https://3water.com/softs/496779.html

PHP 相关文章推荐
一个php作的文本留言本的例子(一)
Oct 09 PHP
php Sql Server连接失败问题及解决办法
Aug 07 PHP
php操作JSON格式数据的实现代码
Dec 24 PHP
PHP备份数据库生成SQL文件并下载的函数代码
Feb 05 PHP
解析php中获取系统信息的方法
Jun 25 PHP
php内核解析:PHP中的哈希表
Jan 30 PHP
php教程之phpize使用方法
Feb 12 PHP
PHP命名空间(namespace)的动态访问及使用技巧
Aug 18 PHP
基于ThinkPHP5.0实现图片上传插件
Sep 25 PHP
详解php伪造Referer请求反盗链资源
Jan 24 PHP
PHP封装的数据库模型Model类完整示例【基于PDO】
Mar 14 PHP
PHP设计模式之PHP迭代器模式讲解
Mar 22 PHP
php代码审计比较有意思的例子
May 07 #PHP
一个php短网址的生成代码(仿微博短网址)
May 07 #PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
May 07 #PHP
php对称加密算法示例
May 07 #PHP
php实现mysql封装类示例
May 07 #PHP
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
May 07 #PHP
php读取3389的脚本
May 06 #PHP
You might like
强制PHP命令行脚本单进程运行的方法
2014/04/15 PHP
PHP使用memcache缓存技术提高响应速度的方法
2014/12/26 PHP
PHP模板解析类实例
2015/07/09 PHP
PHP常见错误提示含义解释(实用!值得收藏)
2016/04/25 PHP
JavaScript创建对象的写法
2013/08/29 Javascript
js写的评论分页(还不错)
2013/12/23 Javascript
JS实现两个大数(整数)相乘
2014/04/28 Javascript
js确认删除对话框适用于a标签及submit
2014/07/10 Javascript
node.js中的fs.fchownSync方法使用说明
2014/12/16 Javascript
纯JS实现旋转图片3D展示效果
2015/04/12 Javascript
简介JavaScript中POSITIVE_INFINITY值的使用
2015/06/05 Javascript
js实现简洁的滑动门菜单(选项卡)效果代码
2015/09/04 Javascript
浅谈javascript中的三种弹窗
2016/10/21 Javascript
jQuery用FormData实现文件上传的方法
2016/11/21 Javascript
微信小程序开发之视频播放器 Video 弹幕 弹幕颜色自定义实例
2016/12/08 Javascript
Vue.js实现一个SPA登录页面的过程【推荐】
2017/04/29 Javascript
详解微信小程序Page中data数据操作和函数调用
2017/09/27 Javascript
vue-router3.0版本中 router.push 不能刷新页面的问题
2018/05/10 Javascript
PHP实现基于Redis的MessageQueue队列封装操作示例
2019/02/02 Javascript
JS html事件冒泡和事件捕获操作示例
2019/05/01 Javascript
vue项目中使用bpmn-自定义platter的示例代码
2020/05/11 Javascript
vue路由结构可设一层方便动态添加路由操作
2020/08/31 Javascript
Vue+Java+Base64实现条码解析的示例
2020/09/23 Javascript
Python字符串详细介绍
2015/05/09 Python
Python科学画图代码分享
2017/11/29 Python
Python中property函数用法实例分析
2018/06/04 Python
python读取图片并修改格式与大小的方法
2018/07/24 Python
Python+OpenCV图片局部区域像素值处理改进版详解
2019/01/23 Python
python手写均值滤波
2020/02/19 Python
opencv中图像叠加/图像融合/按位操作的实现
2020/04/01 Python
python基于socket函数实现端口扫描
2020/05/28 Python
Free People中国官网:波西米亚风格女装服饰
2016/08/30 全球购物
商业活动邀请函
2014/02/04 职场文书
美丽乡村建设实施方案
2014/03/23 职场文书
2015年“公民道德宣传日”活动方案
2015/05/06 职场文书
Spring JPA 增加字段执行异常问题及解决
2022/06/10 Java/Android