PHP批量检测并去除文件BOM头代码实例

如下代码为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);
}
?>

当然脚本小编为大家找到了一个软件版本的检测工具:下载地址 http://www.jb51.net/softs/496779.html

(0)

相关推荐

  • php实现批量修改文件名称的方法

    本文实例讲述了php实现批量修改文件名称的方法.分享给大家供大家参考,具体如下: <?php session_start(); set_time_limit(0); //function allfile($dir) // { // $files=array(); // if(is_file($dir)) // { // return $dir; // } // $handle = opendir($dir); // if($handle) { // while(false !== ($file

  • php中批量替换文件名的实现代码

    代码如下 复制代码 代码如下: $dir = 'D:\Program Files\resource\application\Skin\PNG\\';//注意这里的路径,最后要加两个\,第一个表示转意,但是这样容易遇到其他特定转义,还要仔细判断,可以写为如下方式 $dir = 'D:/Program Files/resource/application/Skin/PNG/';//写成这样的路径,就不用担心转义问题了.最后面的/不要漏写 if ($dh = opendir($dir)) { whil

  • PHP批量删除、清除UTF-8文件BOM头的代码实例

    记得运行代码前先把文件备份一下哦,避免出现失败问题. 代码一: 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($char

  • php 批量生成html,txt文件的实现代码

    首先建立一个conn.php的文件用来链接数据库 复制代码 代码如下: <?php    $link = mysql_connect("mysql_host" , "mysql_user" , "mysql_password" )or die("Could not connect : " . mysql_error());     mysql_query("set names utf8");    

  • PHP chmod 函数与批量修改文件目录权限

    语法 chmod(file,mode)参数 描述 file 必需.规定要检查的文件. mode 可选.规定新的权限. mode 参数由 4 个数字组成: 第一个数字永远是 0 第二个数字规定所有者的权限 第二个数字规定所有者所属的用户组的权限 第四个数字规定其他所有人的权限 可能的值(如需设置多个权限,请对下面的数字进行总计): 1 - 执行权限 2 - 写权限 4 - 读权限 来看个简单的实例 复制代码 代码如下: <?php chmod("/somedir/somefile"

  • 批量去除PHP文件中bom的PHP代码

    需要去除BOM,就把附件里的tool.php文件放到目标目录,然后在浏览器访问tool.php即可! 复制代码 代码如下: <?php //此文件用于快速测试UTF8编码的文件是不是加了BOM,并可自动移除 $basedir="."; //修改此行为需要检测的目录,点表示当前目录 $auto=1; //是否自动移除发现的BOM信息.1为是,0为否. //以下不用改动 if ($dh = opendir($basedir)) { while (($file = readdir($d

  • php中批量修改文件后缀名的函数代码

    复制代码 代码如下: <?php function foreachDir($path){ $handle=opendir($path); if($handle){ while (false !== ($file = readdir($handle))) { if($file!="." && $file!='..'){ if(is_dir($path.$file)){ echo $path.$file."<br/>"; foreach

  • php实现批量压缩图片文件大小的脚本

    今天,想上传大量图片到论坛,由于图片是单反拍的,体积较大,就写了一个脚本,批量压缩图片. <?php if ($handle = opendir('./old')) { while (false !== ($file = readdir($handle))) { if ($file == '.' || $file == '..') { continue; } write('d:/wamp/www/test/old/'.$file, 'd:/wamp/www/test/new/'.$file);

  • php中数据的批量导入(csv文件)

    有时写程序时后台要求把大量数据导入数据库中,比如计算机考试成绩的查询.电话簿的数据等一般都是存放在excel中的,这时我们可把数据导出成csv文件,然后通过以下程序即可在后台批量导入数据到数据库中. 下面只是主要程序部分: <?php /***************************************************作者:冲星/arcow**************************njj@nuc.edu.cn*****************************

  • php实现文件编码批量转换

    有些问题,不能重复转,比如gbk转到utf8,然后有在转成utf8,这样会乱码,我本来试图在转换之前去检测编码的,貌似失败了.我特意试了一个文件,我检测它是是否是gbk或者是utf-8,都返回true.这就不懂了. 复制代码 代码如下: <?php/** * 转换文件编码 * 依赖的扩展filesystem 和 mbstring * @example * <pre> * include_once 'ConvertEncode.php'; * $convert = new ConvertE

  • PHP批量修改文件名称的方法分析

    本文实例讲述了PHP批量修改文件名称的方法.分享给大家供大家参考,具体如下: 在这里我们利用一个战地自己写的一个例子来具体分析一下利用PHP批量修改文件名称的思路和注意事项. 从这个例子里你将会看到,PHP如何判断一个路径是不是目录,如何用PHP取得路径中的文件名称和文件的扩展名,随机函数rand的基本应用,以及这个程序的核心内容递归函数的基本应用. 程序功能:利用PHP目录和文件函数遍历用户给出目录的所有的文件和文件夹,修改文件名称: 首先判断用户给出的目录是不是一个合法目录: 我们这里只是修

  • php实现批量下载百度云盘文件例子分享

    百度开放云PhpSDK下载地址:http://developer.baidu.com/wiki/index.php?title=%E5%B8%AE%E5%8A%A9%E6%96%87%E6%A1%A3%E9%A6%96%E9%A1%B5/web%E5%BA%94%E7%94%A8%E6%8E%A5%E5%85%A5/SDK 实例代码: 复制代码 代码如下: <?php/** * Author: hankcs * Date  : 14-3-29 * Time  : 下午10:29 */ini_se

  • 如何使用PHP批量去除文件UTF8 BOM信息

    原理:UTF8文件,微软为了增加一个识别信息,有了BOM这个东西:BOM -- Byte Order Mark,缺省在Windows等平台上编辑的UTF8文件会在头部增加3个字节的标记信息,我们PHP引擎在处理的时候会完整读取整个PHP代码文档, 如果PHP文件头部包含BOM信息,就会输出一个空白,在很多时候会带来问题,比如我们session无法工作.cookie无法设置等等问题. 解决方法:把头部BOM的3个字节信息识别出来,然后剔除掉.不过一般情况我们不知道哪个文件有BOM,或者是有很多文件

随机推荐