保存为php文件,放入服务器运行一下即可

1. <?php
2. if (isset($_GET['dir'])){ //设置文件目录
3. $basedir=$_GET['dir'];
4. }else{
5. $basedir = '.';
6. }
7. $auto = 1;
8. checkdir($basedir);
9. function checkdir($basedir){
10. if ($dh = opendir($basedir)) {
11. while (($file = readdir($dh)) !== false) {
12. if ($file != '.' && $file != '..'){
13. if (!is_dir($basedir."/".$file)) {
14. echo "filename: $basedir/$file ".checkBOM("$basedir/$file")." <br>";
15. }else{
16. $dirname = $basedir."/".$file;
17. checkdir($dirname);
18. }
19. }
20. }
21. closedir($dh);
22. }
23. }
24. function checkBOM ($filename) {
25. global $auto;
26. $contents = file_get_contents($filename);
27. $charset[1] = substr($contents, 0, 1);
28. $charset[2] = substr($contents, 1, 1);
29. $charset[3] = substr($contents, 2, 1);
30. if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {
31. if ($auto == 1) {
32. $rest = substr($contents, 3);
33. rewrite ($filename, $rest);
34. return ("<font color=red>BOM found, automatically removed.</font>");
35. } else {
36. return ("<font color=red>BOM found.</font>");
37. }
38. }
39. else return ("BOM Not Found.");
40. }
41. function rewrite ($filename, $data) {
42. $filenum = fopen($filename, "w");
43. flock($filenum, LOCK_EX);
44. fwrite($filenum, $data);
45. fclose($filenum);
46. }
47. ?>