欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

php 批量去除项目文件bom头

程序员文章站 2022-06-24 09:38:32
1 "; 18 } else { 19 $dirname = $basedir . "/" . $file; 20 checkdir($dirname); 21 } 22 } 23 } 24 cl... ......
 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 ?>