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 相关文章推荐
使用MaxMind 根据IP地址对访问者定位
Oct 09 PHP
特转载一高手总结PHP学习资源和链接.
Dec 05 PHP
php横向重复区域显示二法
Sep 25 PHP
php 什么是PEAR?(第二篇)
Mar 19 PHP
linux系统下php安装mbstring扩展的二种方法
Jan 20 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
Jan 26 PHP
php提高网站效率的技巧
Sep 29 PHP
深入理解PHP中的count函数
May 31 PHP
详谈php静态方法及普通方法的区别
Oct 04 PHP
Yii CDBCriteria常用方法实例小结
Jan 19 PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
Nov 20 PHP
PHP的介绍以及优势详细分析
Sep 05 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
PHPnow安装服务[apache_pn]失败的问题的解决方法
2010/09/10 PHP
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
2011/12/05 PHP
laravel 中某一字段自增、自减的例子
2019/10/11 PHP
PHP Trait功能与用法实例分析
2020/06/03 PHP
利用js对象弹出一个层
2008/03/26 Javascript
JQuery Dialog的内存泄露问题解决方法
2010/06/18 Javascript
js 实现菜单左右滚动显示示例介绍
2013/11/21 Javascript
easyui datagrid 键盘上下控制选中行示例
2014/03/31 Javascript
JS截取url中问号后面参数的值信息
2014/04/29 Javascript
jQuery中:has选择器用法实例
2014/12/30 Javascript
jQuery中scrollTop()方法用法实例
2015/01/16 Javascript
JavaScript实现单击下拉框选择直接跳转页面的方法
2015/07/02 Javascript
浅析javascript的return语句
2015/12/15 Javascript
JS实现的点击表头排序功能示例
2017/03/27 Javascript
nodejs入门教程三:调用内部和外部方法示例
2017/04/24 NodeJs
10行代码实现微信小程序滑动tab切换
2018/12/28 Javascript
element-ui组件中input等的change事件中传递自定义参数
2019/05/22 Javascript
vue+Element-ui实现登录注册表单
2020/11/17 Javascript
js实现简单的倒计时
2021/01/28 Javascript
python根据给定文件返回文件名和扩展名的方法
2015/03/27 Python
python实现根据ip地址反向查找主机名称的方法
2015/04/29 Python
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
Python简单生成随机数的方法示例
2018/03/31 Python
python把1变成01的步骤总结
2019/02/27 Python
Python通用函数实现数组计算的方法
2019/06/13 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
pytorch中的自定义数据处理详解
2020/01/06 Python
Python通过VGG16模型实现图像风格转换操作详解
2020/01/16 Python
Python设计密码强度校验程序
2020/07/30 Python
Python configparser模块封装及构造配置文件
2020/08/07 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
2020/11/24 Python
HTML5 Canvas入门学习教程
2016/03/17 HTML / CSS
Puritan’s Pride(普丽普莱)官方网站:美国最大最全的保健品公司之一
2016/10/23 全球购物
留学推荐信怎么写
2014/01/25 职场文书
《灯光》教学反思
2014/02/08 职场文书
质量负责人岗位职责
2015/02/15 职场文书