删除bom头文件

作者: 村长王无敌 | 来源:发表于2020-05-26 14:01 被阅读0次

把以下代码直接生成一个php文件放到需要排除bom头的目录,然后浏览器运行该文件即可。如果存在bom头,会出现bom removed

<?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>BOM found, automatically removed.</font>");

    } else {

      return ("<font>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);

}

?>

相关文章

网友评论

    本文标题:删除bom头文件

    本文链接:https://www.haomeiwen.com/subject/edomahtx.html