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实现的获取网页中的图片并保存到本地的代码
Jan 05 PHP
php中mysql模块部分功能的简单封装
Sep 30 PHP
php获取301跳转URL简单实例
Dec 16 PHP
PHP向socket服务器收发数据的方法
Jan 24 PHP
PHP实现事件机制的方法
Jul 10 PHP
PHP的Yii框架中View视图的使用进阶
Mar 29 PHP
PHP中的表达式简述
May 29 PHP
PHP实现支付宝即时到账功能
Dec 21 PHP
CI(CodeIgniter)框架实现图片上传的方法
Mar 24 PHP
php将html转为图片的实现方法
May 19 PHP
用php+ajax新建流程(请假、进货、出货等)
Jun 11 PHP
php实现解析xml并生成sql语句的方法
Feb 03 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编程中八种常见的文件操作方式
2006/11/19 PHP
php简单统计字符串单词数量的方法
2015/06/19 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
PHP7数组的底层实现示例
2019/08/25 PHP
javascript forEach通用循环遍历方法
2010/10/11 Javascript
js this函数调用无需再次抓获id,name或标签名
2014/03/03 Javascript
nodejs 提示‘xxx’ 不是内部或外部命令解决方法
2014/11/20 NodeJs
JavaScript实现给定时间相加天数的方法
2016/01/25 Javascript
微信小程序 form组件详解及简单实例
2017/01/10 Javascript
原生JS实现旋转轮播图+文字内容切换效果【附源码】
2018/09/29 Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
2019/05/02 Javascript
JS字符串与二进制的相互转化实例代码详解
2019/06/28 Javascript
js设计模式之单例模式原理与用法详解
2019/08/15 Javascript
uploadify插件实现多个图片上传并预览
2019/09/30 Javascript
为什么Vue3.0使用Proxy实现数据监听(defineProperty表示不背这个锅)
2019/10/14 Javascript
vue实现页面内容禁止选中功能,仅输入框和文本域可选
2019/11/09 Javascript
详解vue中v-bind:style效果的自定义指令
2020/01/21 Javascript
[05:39]2014DOTA2国际邀请赛 DK晋级胜者组专访战队国士无双
2014/07/14 DOTA
Python网络编程详解
2017/10/31 Python
用Python将Excel数据导入到SQL Server的例子
2019/08/24 Python
django实现支付宝支付实例讲解
2019/10/17 Python
在win64上使用bypy进行百度网盘文件上传功能
2020/01/02 Python
伦敦一家西班牙童装精品店:La Coqueta
2018/02/02 全球购物
党支部书记先进事迹
2014/01/17 职场文书
小学生安全保证书
2014/02/01 职场文书
优秀大学生职业生涯规划书
2014/02/27 职场文书
计算机维护专业推荐信
2014/02/27 职场文书
大学校务公开实施方案
2014/03/31 职场文书
班子四风对照检查材料思想汇报
2014/09/29 职场文书
2015元旦文艺汇演主持稿(开场白+结束语)
2014/12/14 职场文书
2015年十一国庆节演讲稿
2015/03/20 职场文书
开票证明
2015/06/23 职场文书
关于社会实践的心得体会(2016最新版)
2016/01/25 职场文书
导游词之河北白洋淀
2020/01/15 职场文书
Java数据结构之链表相关知识总结
2021/06/18 Java/Android
win10拖拽文件时崩溃怎么解决?win10文件不能拖拽问题解决方法
2022/08/14 数码科技