//只要把此文件另存为removebom.php,放在服务器根目录,然后执行,就可以去除服务器端bom,
//在chrome有小红点的开始
1 <?php
2 //remove the utf-8 boms
3 //by magicbug at gmail dot com
4 if (isset($_GET['dir'])){ //config the basedir
5 $basedir=$_GET['dir'];
6 }else{
7 $basedir = '.';
8 }
9 $auto = 1;
10 checkdir($basedir);
11 function checkdir($basedir){
12 if ($dh = opendir($basedir)) {
13 while (($file = readdir($dh)) !== false) {
14 if ($file != '.' && $file != '..'){
15 if (!is_dir($basedir."/".$file)) {
16 echo "filename: $basedir/
17 $file ".checkBOM("$basedir/$file")." <br>";
18 }else{
19 $dirname = $basedir."/".
20 $file;
21 checkdir($dirname);
22 }
23 }
24 }
25 closedir($dh);
26 }
27 }
28
29 function checkBOM ($filename) {
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 &&
36 ord($charset[3]) == 191) {
37 if ($auto == 1) {
38 $rest = substr($contents, 3);
39 rewrite ($filename, $rest);
40 return ("<font color=red>BOM found,
41 automatically removed.</font>");
42 } else {
43 return ("<font color=red>BOM found.
44 </font>");
45 }
46 }
47 else return ("BOM Not Found.");
48 }
49
50 function rewrite ($filename, $data) {
51 $filenum = fopen($filename, "w");
52 flock($filenum, LOCK_EX);
53 fwrite($filenum, $data);
54 fclose($filenum);
55 }
56 ?>