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 相关文章推荐
如何实现给定日期的若干天以后的日期
Oct 09 PHP
简单介绍下 PHP5 中引入的 MYSQLI的用途
Mar 19 PHP
PHP 编写的 25个游戏脚本
May 11 PHP
PHP获取一个字符串中间一部分字符的方法
Aug 19 PHP
smarty表格换行实例
Dec 15 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
Apr 07 PHP
thinkphp项目部署到Linux服务器上报错“模板不存在”如何解决
Apr 27 PHP
浅析PHP7新功能及语法变化总结
Jun 17 PHP
PHP简单获取随机数的常用方法小结
Jun 07 PHP
php下载远程大文件(获取远程文件大小)的实例
Jun 17 PHP
php实现的二分查找算法示例
Jun 20 PHP
PHP 实现页面静态化的几种方法
Jul 23 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
《斗罗大陆》六翼天使武魂最强,为什么老千家不是上三宗?
2020/03/02 国漫
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
PHP获取MySql新增记录ID值的3种方法
2014/06/24 PHP
Yii中使用PHPExcel导出Excel的方法
2014/12/26 PHP
php生成图片缩略图的方法
2015/04/07 PHP
apycom出品的jQuery精美菜单破解方法
2011/02/18 Javascript
jquery选择器-根据多个属性选择示例代码
2013/10/21 Javascript
巧用jquery解决下拉菜单被Div遮挡的相关问题
2014/02/13 Javascript
JS运动基础框架实例分析
2015/03/03 Javascript
JavaScript基于原型链的继承
2016/06/22 Javascript
nodeJS删除文件方法示例
2016/12/25 NodeJs
Angular之指令Directive用法详解
2017/03/01 Javascript
浅谈JavaScript find 方法不支持IE的问题
2017/09/28 Javascript
JS判断数组那点事
2017/10/10 Javascript
微信小程序云开发之模拟后台增删改查
2019/05/16 Javascript
node.js使用mongoose操作数据库实现购物车的增、删、改、查功能示例
2019/12/23 Javascript
浅谈Vue 函数式组件的使用技巧
2020/06/16 Javascript
[52:36]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python检测远程服务器tcp端口的方法
2015/03/14 Python
Python  pip安装lxml出错的问题解决办法
2017/02/10 Python
Python实现利用最大公约数求三个正整数的最小公倍数示例
2017/09/30 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
2017/11/29 Python
Python爬取成语接龙类网站
2018/10/19 Python
Python分析彩票记录并预测中奖号码过程详解
2019/07/09 Python
python numpy 反转 reverse示例
2019/12/04 Python
python 实现视频 图像帧提取
2019/12/10 Python
python plotly画柱状图代码实例
2019/12/13 Python
Django使用rest_framework写出API
2020/05/21 Python
Keras自动下载的数据集/模型存放位置介绍
2020/06/19 Python
Python xlwings插入Excel图片的实现方法
2021/02/26 Python
2分钟教你实现环形/扇形菜单(基础版)
2020/01/15 HTML / CSS
车间操作工岗位职责
2013/12/19 职场文书
运动会通讯稿100字
2014/01/31 职场文书
服务承诺书格式
2014/05/21 职场文书
环保标语大全
2014/06/12 职场文书
2015年保险公司个人工作总结
2015/05/22 职场文书