BOM清除工具

在windows下编辑php文件经常会遇到BOM的问题。常见的就是在浏览器里打开网页,审查元素时发现head部分的内容全部跑到body里去了,并且在body开始会有一行空字符串。这是由于记事本等软件会在UTF8格式的文件头部写入BOM,而正是这个东西干扰了php。

这个问题解决方法很简单:

复制这段代码保存为php,放在项目的根目录下,然后运行之,会自动检查BOM并清除。

 
 
  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._<a href='http://www.chenxuanyi.cn'>http://www.chenxuanyi.cn</a></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. ?>

*这段代码不是原创的,不知道从哪里下载来的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值