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分页函数
Jul 08 PHP
PHP 5昨天隆重推出--PHP 5/Zend Engine 2.0新特性
Oct 09 PHP
php自动加载的两种实现方法
Jun 21 PHP
php去除重复字的实现代码
Sep 16 PHP
PHP中如何定义和使用常量
Feb 28 PHP
解析在PHP中使用mysqli扩展库对mysql的操作
Jul 03 PHP
php中smarty模板条件判断用法实例
Jun 11 PHP
crontab无法执行php的解决方法
Jan 25 PHP
Joomla数据库操作之JFactory::getDBO用法
May 05 PHP
PHP 匿名函数与注意事项详细介绍
Nov 26 PHP
PHP实现对xml进行简单的增删改查(CRUD)操作示例
May 19 PHP
thinkPHP框架实现的短信接口验证码功能示例
Jun 20 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的变量总结 新手推荐
2011/04/18 PHP
php json与xml序列化/反序列化
2013/10/28 PHP
PHP模块memcached使用指南
2014/12/08 PHP
Yii中使用PHPExcel导出Excel的方法
2014/12/26 PHP
laravel ORM 只开启created_at的几种方法总结
2018/01/29 PHP
关于JavaScript的一些看法
2009/05/27 Javascript
js setTimeout 常见问题小结
2013/08/13 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
js中定义一个变量并判断其是否为空的方法
2014/05/13 Javascript
Js控制滑轮左右滑动实例
2015/02/13 Javascript
浅谈javascript语法和定时函数
2015/05/03 Javascript
jQuery弹出层插件popShow(改进版)用法示例
2017/01/23 Javascript
js中的事件委托或是事件代理使用详解
2017/06/23 Javascript
javaScript字符串工具类StringUtils详解
2017/12/08 Javascript
vue的.vue文件是怎么run起来的(vue-loader)
2018/12/10 Javascript
[26:21]浴火之凤-TI4世界冠军Newbee战队纪录片
2014/08/07 DOTA
[34:39]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#1COL VS EG第二局
2016/03/05 DOTA
[02:14]2016国际邀请赛中国区预选赛Ehome晋级之路
2016/07/01 DOTA
[45:18]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第一场
2018/04/04 DOTA
Python实现数据库编程方法详解
2015/06/09 Python
python的命名规则知识点总结
2019/10/04 Python
基于python实现检索标记敏感词并输出
2020/05/07 Python
如何教少儿学习Python编程
2020/07/10 Python
python 使用elasticsearch 实现翻页的三种方式
2020/07/31 Python
如何在Python3中使用telnetlib模块连接网络设备
2020/09/21 Python
浅析python 通⽤爬⾍和聚焦爬⾍
2020/09/28 Python
荷兰的时尚市场:To Be Dressed
2019/05/06 全球购物
ellesse美国官方商店:意大利高级运动服品牌
2019/10/29 全球购物
中专药剂专业应届毕的自我评价
2013/12/27 职场文书
大学生职业规划书的范本
2014/02/18 职场文书
出国留学担保书
2014/05/20 职场文书
心灵点滴观后感
2015/06/02 职场文书
汉字听写大会观后感
2015/06/12 职场文书
浅谈MySQL之select优化方案
2021/08/07 MySQL
微信小程序调用python模型
2022/04/21 Python
利用Python实现模拟登录知乎
2022/05/25 Python