• php 批量去除项目文件bom头


     1 <?php
     2 if (isset($_GET['dir'])) { //设置文件目录 
     3     $basedir = $_GET['dir'];
     4 } else {
     5     $basedir = '.';
     6 }
     7 
     8 $auto = 1;
     9 checkdir($basedir);
    10 
    11 function checkdir($basedir)
    12 {
    13     if ($dh = opendir($basedir)) {
    14         while (($file = readdir($dh)) !== false) {
    15             if ($file != '.' && $file != '..') {
    16                 if (!is_dir($basedir . "/" . $file)) {
    17                     echo "filename: $basedir/$file " . checkBOM("$basedir/$file") . " <br>";
    18                 } else {
    19                     $dirname = $basedir . "/" . $file;
    20                     checkdir($dirname);
    21                 }
    22             }
    23         }
    24         closedir($dh);
    25     }
    26 }
    27 
    28 function checkBOM($filename)
    29 {
    30     global $auto;
    31     $contents = file_get_contents($filename);
    32     $charset[1] = substr($contents, 0, 1);
    33     $charset[2] = substr($contents, 1, 1);
    34     $charset[3] = substr($contents, 2, 1);
    35     if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {
    36         if ($auto == 1) {
    37             $rest = substr($contents, 3);
    38             rewrite($filename, $rest);
    39             return ("<font color='red'>BOM found, automatically removed.</font>");
    40         } else {
    41             return ("<font color='red'>BOM found.</font>");
    42         }
    43     } else
    44         return ("BOM Not Found.");
    45 }
    46 
    47 function rewrite($filename, $data)
    48 {
    49     $filenum = fopen($filename, "w");
    50     flock($filenum, LOCK_EX);
    51     fwrite($filenum, $data);
    52     fclose($filenum);
    53 }
    54 
    55 ?>
  • 相关阅读:
    #Leetcode# 164. Maximum Gap
    #Leetcode# 155. Min Stack
    #Leetcode# 165. Compare Version Numbers
    Linux——信息分析(四)域名分析dig、host、
    Linux——信息采集(三)dmitry、路由跟踪命令tracerouter
    密码学——cookie攻击
    final关键字
    重载与重写
    break and continue
    计算机硬件系统
  • 原文地址:https://www.cnblogs.com/handle/p/9246112.html
Copyright © 2020-2023  润新知