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学习资源和链接.
Dec 05 PHP
php中文字母数字验证码实现代码
Apr 25 PHP
php的list()的一步操作给一组变量进行赋值的使用
May 18 PHP
关于php正则匹配汉字的方法介绍
Apr 25 PHP
php strrpos()与strripos()函数
Aug 31 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
Jul 01 PHP
Zend Framework开发入门经典教程
Mar 23 PHP
PHP中串行化用法示例
Nov 16 PHP
phpMyAdmin无法登陆的解决方法
Apr 27 PHP
PHP简单获取随机数的常用方法小结
Jun 07 PHP
通过源码解析Laravel的依赖注入
Jan 22 PHP
PHP实现时间日期友好显示实现代码
Sep 08 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
main.php
2006/12/09 PHP
MySQL相关说明
2007/01/15 PHP
一些 PHP 管理系统程序中的后门
2009/08/05 PHP
php 生成自动创建文件夹并上传文件的示例代码
2014/03/07 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
2019/12/02 PHP
php实现文件上传基本验证
2020/03/04 PHP
phpwind放自动注册方法
2006/12/02 Javascript
JavaScript Timer实现代码
2010/02/17 Javascript
Extjs中常用表单介绍与应用
2010/06/07 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
2014/04/04 Javascript
使用GruntJS构建Web程序之构建篇
2014/06/04 Javascript
JSONP跨域GET请求解决Ajax跨域访问问题
2014/12/31 Javascript
JS实现随机乱撞彩色圆球特效的方法
2015/05/05 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
2016/01/18 Javascript
jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐)
2016/08/23 Javascript
JavaScript trim 实现去除字符串首尾指定字符的简单方法
2016/12/27 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
bootstrap下拉分页样式 带跳转页码
2018/12/29 Javascript
element el-tree组件的动态加载、新增、更新节点的实现
2020/02/27 Javascript
在Python中使用Neo4j数据库的教程
2015/04/16 Python
python实现同时给多个变量赋值的方法
2015/04/30 Python
python的re正则表达式实例代码
2018/01/24 Python
Python基础教程之if判断,while循环,循环嵌套
2019/04/25 Python
使用Python的Turtle绘制哆啦A梦实例
2019/11/21 Python
jupyter notebook tensorflow打印device信息实例
2020/04/20 Python
Python文件操作模拟用户登陆代码实例
2020/06/09 Python
Pretty You London官网:英国拖鞋和睡衣品牌
2019/05/08 全球购物
MUGLER官方网站:蒂埃里·穆勒香水
2019/11/26 全球购物
检察官就职演讲稿
2014/01/13 职场文书
给领导的致歉信范文
2014/01/13 职场文书
土地租赁意向书
2014/07/30 职场文书
整顿机关作风心得体会
2014/09/10 职场文书
求职信格式范文
2015/03/19 职场文书
2016中秋节广告语
2016/01/28 职场文书
SQL Server——索引+基于单表的数据插入与简单查询【1】
2021/04/05 SQL Server
Go调用Rust方法及外部函数接口前置
2022/06/14 Golang