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获取textarea的值并处理回车换行的方法
Oct 20 PHP
PHP与MYSQL中UTF8 中文排序示例代码
Oct 23 PHP
php图片处理函数获取类型及扩展名实例
Nov 19 PHP
PHP答题类应用接口实例
Feb 09 PHP
php传值赋值和传地址赋值用法实例分析
Jun 20 PHP
php链表用法实例分析
Jul 09 PHP
WordPress中给媒体文件添加分类和标签的PHP功能实现
Dec 31 PHP
smarty中改进truncate使其支持中文的方法
May 30 PHP
PHPExcel导出2003和2007的excel文档功能示例
Jan 04 PHP
PHP实现的redis主从数据库状态检测功能示例
Jul 20 PHP
PHP INT类型在内存中占字节详解
Jul 20 PHP
Thinkphp 框架扩展之Widget扩展实现方法分析
Apr 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
PHP版微信第三方实现一键登录及获取用户信息的方法
2016/10/14 PHP
php 输出缓冲 Output Control用法实例详解
2020/03/03 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
动态调用css文件——jquery的应用
2007/02/20 Javascript
瀑布流布局代码一例
2014/04/11 Javascript
JS组件Bootstrap实现下拉菜单效果代码
2016/04/26 Javascript
JS判断是否在微信浏览器打开的简单实例(推荐)
2016/08/24 Javascript
js html css实现复选框全选与反选
2016/10/09 Javascript
JavaScript日期选择功能示例
2017/01/16 Javascript
webpack3+React 的配置全解
2017/08/21 Javascript
详解Vue.js和layui日期控件冲突问题解决办法
2019/07/25 Javascript
使用apifm-wxapi模块中的问题及解决方法
2019/08/05 Javascript
Vue使用v-viewer实现图片预览
2020/10/21 Javascript
[01:09:40]Newbee vs Pain 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python生成器(Generator)详解
2015/04/13 Python
Python实现运行其他程序的四种方式实例分析
2017/08/17 Python
Python中extend和append的区别讲解
2019/01/24 Python
Python中最好用的命令行参数解析工具(argparse)
2019/08/23 Python
python输出带颜色字体实例方法
2019/09/01 Python
Pandas+Matplotlib 箱式图异常值分析示例
2019/12/09 Python
基于打开pycharm有带图片md文件卡死问题的解决
2020/04/24 Python
Pycharm连接远程服务器过程图解
2020/04/30 Python
Python3创建Django项目的几种方法(3种)
2020/06/03 Python
CSS3 实现footer 固定在底部(无论页面多高始终在底部)
2019/10/15 HTML / CSS
英国、欧洲和全球租车服务:Avis英国
2016/08/29 全球购物
编写函数,将一个3*3矩阵转置
2013/10/09 面试题
网络程序员自荐信
2014/01/25 职场文书
大学毕业感言一句话
2014/02/06 职场文书
大专会计自我鉴定
2014/02/06 职场文书
大学生求职信范文
2014/05/24 职场文书
新颖的化妆品活动方案
2014/08/21 职场文书
保证金退回承诺函格式
2015/01/21 职场文书
2019年暑期法院实习报告
2019/12/18 职场文书
MySQL Router的安装部署
2021/04/24 MySQL
SpringBoot生成License的实现示例
2021/06/16 Java/Android
JS 基本概念详细介绍
2021/10/16 Javascript