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 的ArrayAccess接口 像数组一样来访问你的PHP对象
Oct 12 PHP
基于PHP文件操作的详解
Jun 05 PHP
php读取excel文件的简单实例
Aug 26 PHP
PHP中的按位与和按位或操作示例
Jan 27 PHP
destoon利用Rewrite规则设置网站安全
Jun 21 PHP
全面解析PHP操作Memcache基本函数
Jul 14 PHP
PHP连接MYSQL数据库的3种常用方法
Feb 27 PHP
解决出现SoapFault (looks like we got no XML document)的问题
Jun 24 PHP
Laravel实现短信注册的示例代码
May 29 PHP
tp5递归 无限级分类详解
Oct 18 PHP
Laravel 在views中加载公共页面的实现代码
Oct 22 PHP
PHP使用递归按层级查找数据的方法
Nov 10 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
改进的IP计数器
2006/10/09 PHP
劣质的PHP代码简化
2010/02/08 PHP
WordPress开发中的get_post_custom()函数使用解析
2016/01/04 PHP
Javascript insertAfter() 实现函数代码
2011/10/12 Javascript
javascript nextSibling 与 getNextElement(node) 使用介绍
2011/10/13 Javascript
NodeJS使用jQuery选择器操作DOM
2015/02/13 NodeJs
Web技术实现移动监测的介绍
2017/09/18 Javascript
angularjs 缓存的使用详解
2018/03/19 Javascript
小程序自定义单页面、全局导航栏的实现代码
2019/03/15 Javascript
JS实现在线ps功能详解
2019/07/31 Javascript
python基于mysql实现的简单队列以及跨进程锁实例详解
2014/07/07 Python
Python画图学习入门教程
2016/07/01 Python
[原创]python爬虫(入门教程、视频教程)
2018/01/08 Python
python迭代dict的key和value的方法
2018/07/06 Python
利用Python实现原创工具的Logo与Help
2018/12/03 Python
python3实现带多张图片、附件的邮件发送
2019/08/10 Python
浅谈JupyterNotebook导出pdf解决中文的问题
2020/04/22 Python
Python 3.9的到来到底是意味着什么
2020/10/14 Python
编写html5时调试发现脚本php等网页js、css等失效
2013/12/31 HTML / CSS
英国异国风情旅游网站:Travel Talk Tours(团体旅游、探险旅游、帆船假期)
2018/07/26 全球购物
美国购买肉、鸭、家禽、鹅肝和熟食网站:D’Artagnan
2018/11/13 全球购物
JD Sports荷兰:英国领先的运动时尚零售商
2020/03/13 全球购物
BSTN意大利:德国街头和运动文化高品质商店
2020/12/22 全球购物
音乐专业应届生教师求职信
2013/11/04 职场文书
求职简历推荐信范文
2013/12/02 职场文书
高一地理教学反思
2014/01/18 职场文书
知识竞赛活动方案
2014/02/18 职场文书
体育教师求职信
2014/05/24 职场文书
优秀学生干部先进事迹材料
2014/05/26 职场文书
五四演讲稿范文
2014/09/03 职场文书
单位在职证明书
2014/09/11 职场文书
小学语文教学反思范文
2016/03/03 职场文书
深度学习详解之初试机器学习
2021/04/14 Python
Python如何使用循环结构和分支结构
2022/04/13 Python
nginx容器方式反向代理实战
2022/04/18 Servers
Apache Kafka 分区重分配的实现原理解析
2022/07/15 Servers