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 相关文章推荐
基于mysql的论坛(7)
Oct 09 PHP
php 无极分类(递归)实现代码
Jan 05 PHP
php中批量修改文件后缀名的函数代码
Oct 23 PHP
php中++i 与 i++ 的区别
Aug 08 PHP
浅谈php中mysql与mysqli的区别分析
Jun 10 PHP
php中注册器模式类用法实例分析
Nov 03 PHP
如何使用php脚本给html中引用的js和css路径打上版本号
Nov 18 PHP
PHP判断手机是IOS还是Android
Dec 09 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
Jun 16 PHP
php简单检测404页面的方法示例
Aug 23 PHP
PHP number_format函数原理及实例解析
Jul 14 PHP
PHP7 错误处理机制修改
Mar 09 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
锁定年轻人的双倍活力 星巴克推出星倍醇即饮浓咖啡
2021/03/03 咖啡文化
Access数据库导入Mysql的方法之一
2006/10/09 PHP
php中current、next与reset函数用法实例
2014/11/17 PHP
jQuery 中使用JSON的实现代码
2011/12/01 Javascript
Jquery实现带动画效果的经典二级导航菜单
2013/03/22 Javascript
jquery中$(#form :input)与$(#form input)的区别
2014/08/18 Javascript
JS+CSS实现仿雅虎另类滑动门切换效果
2015/10/13 Javascript
JavaScript+html5 canvas绘制的小人效果
2016/01/27 Javascript
Vue.js展示AJAX数据简单示例讲解
2017/03/29 Javascript
详解Vue.js之视图和数据的双向绑定(v-model)
2017/06/23 Javascript
JS自定义函数实现时间戳转换成date的方法示例
2017/08/27 Javascript
ajax+node+request爬取网络图片的实例(宅男福利)
2017/08/28 Javascript
ES6解构赋值的功能与用途实例分析
2017/10/31 Javascript
JS用最简单的方法实现四舍五入
2019/08/27 Javascript
Layui多选只有最后一个值的解决方法
2019/09/02 Javascript
Javascript柯里化实现原理及作用解析
2020/10/22 Javascript
express异步函数异常捕获示例详解
2020/11/30 Javascript
Python机器学习之决策树算法
2017/12/22 Python
Python修改文件往指定行插入内容的实例
2019/01/30 Python
详解python使用turtle库来画一朵花
2019/03/21 Python
python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用
2019/04/03 Python
Python使用线程来接收串口数据的示例
2019/07/02 Python
Python导入数值型Excel数据并生成矩阵操作
2020/06/09 Python
python matplotlib绘制三维图的示例
2020/09/24 Python
python 读取串口数据的示例
2020/11/09 Python
HTML5实现经典坦克大战坦克乱走还能发出一个子弹
2013/09/02 HTML / CSS
拥有超过850家商店的美国在线派对商店:Party City
2018/10/21 全球购物
奥地利手表、香水、化妆品和珠宝购物网站:Brasty.at
2021/01/17 全球购物
医药专业推荐信
2013/11/15 职场文书
项目专员岗位职责
2013/12/04 职场文书
财务工作个人求职的自我评价
2013/12/19 职场文书
应届毕业生个人求职自荐信
2014/01/06 职场文书
大学活动邀请函
2014/01/28 职场文书
师范类求职信
2014/06/21 职场文书
党的群众路线教育实践活动个人整改方案
2014/09/21 职场文书
mysql聚集索引、辅助索引、覆盖索引、联合索引的使用
2022/02/12 MySQL