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 相关文章推荐
加速XP搜索功能堪比vista
Mar 22 PHP
php 获取select下拉列表框的值
May 08 PHP
php注销代码(session注销)
May 31 PHP
PHP生成Gif图片验证码
Oct 27 PHP
phpexcel导入excel数据使用方法实例
Dec 24 PHP
php顺序查找和二分查找示例
Mar 27 PHP
php密码生成类实例
Sep 24 PHP
Linux中为php配置伪静态
Dec 17 PHP
php curl 获取https请求的2种方法
Apr 27 PHP
CodeIgniter记录错误日志的方法全面总结
May 17 PHP
Laravel学习教程之View模块详解
Sep 18 PHP
thinkphp5引入公共部分header、footer的方法详解
Sep 14 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
JS 网站性能优化笔记
2011/05/24 PHP
CodeIgniter基本配置详细介绍
2013/11/12 PHP
PHP中使用hidef扩展代替define提高性能
2015/04/09 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
2015/12/25 PHP
js chrome浏览器判断代码
2010/03/28 Javascript
JavaScript 原型与继承说明
2010/06/09 Javascript
Jquery插件 easyUI属性汇总
2011/01/19 Javascript
jQuery ui实现动感的圆角渐变网站导航菜单效果代码
2015/08/26 Javascript
JQuery zClip插件实现复制页面内容到剪贴板
2015/11/02 Javascript
详解Angular开发中的登陆与身份验证
2016/07/27 Javascript
聊一聊jQuery插件uploadify使用方法
2016/08/24 Javascript
Angular2使用jQuery的方法教程
2017/05/28 jQuery
详解如何构建Angular项目目录结构
2017/07/13 Javascript
通过fastclick源码分析彻底解决tap“点透”
2017/12/24 Javascript
Vue利用canvas实现移动端手写板的方法
2018/05/03 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
2019/02/20 Javascript
微信小程序结合mock.js实现后台模拟及调试
2019/03/28 Javascript
JavaScript数值类型知识汇总
2019/11/17 Javascript
vue实现购物车加减
2020/05/30 Javascript
js中延迟加载和预加载的具体使用
2021/01/14 Javascript
Python 窗体(tkinter)按钮 位置实例
2019/06/13 Python
使用python实现回文数的四种方法小结
2019/11/24 Python
jupyter实现重新加载模块
2020/04/16 Python
Python 将 QQ 好友头像生成祝福语的实现代码
2020/05/03 Python
pycharm设置默认的UTF-8编码模式的方法详解
2020/06/01 Python
pycharm 2020 1.1的安装流程
2020/09/29 Python
Matplotlib中rcParams使用方法
2021/01/05 Python
日本著名的平价时尚女性购物网站:Fifth
2016/08/24 全球购物
基本款天堂:Everlane
2017/05/13 全球购物
法国房车租赁网站:Yescapa
2019/08/26 全球购物
如何打印出当前源文件的文件名以及源文件的当前行号
2015/04/05 面试题
职业生涯规划设计步骤
2014/01/12 职场文书
法律系毕业生求职信
2014/05/28 职场文书
党员创先争优心得体会
2014/09/11 职场文书
合作意向书范本
2019/04/17 职场文书
简历自我评价:教师师德表现自我评价
2019/04/24 职场文书