设为首页收藏本站

星火云社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3792|回复: 0
收起左侧

[网站使用] 网站搬家或者修改文件后验证码无法显示了

[复制链接]
发表于 2016-4-20 22:09:32 | 显示全部楼层 |阅读模式
       有时候我们修改了网站某些文件后,本来可以正常显示的验证码却无法显示了。该改的网址参数等都修改完了,可是验证码就是不显示,这个时候大多是由于我们修改文件后,PHP文件多了一个BOM头,我们需要把BOM头去掉,去掉BOM头后,验证码马上就显示了。
       但是一个网站的PHP文件成千上万,我们需要编程批量查找并去掉BOM头,在网站根目录创建一个php文件,文件代码如下:
  1. <?php
  2. if (isset($_GET['dir'])) { //如果设置了dir目录
  3.     $basedir = $_GET['dir'];
  4. } else {
  5.     $basedir = '../';
  6. }

  7. $auto = 1;
  8. checkdir($basedir);

  9. function checkdir($basedir)
  10. {
  11.     if ($dh = opendir($basedir)) {
  12.         while (($file = readdir($dh)) !== false) {
  13.             if ($file != '.' && $file != '..') {
  14.                 if (!is_dir($basedir . "/" . $file)) {
  15.                     echo "filename: $basedir/$file " . checkBOM("$basedir/$file") . " <br>";
  16.                 } else {
  17.                     $dirname = $basedir . "/" . $file;
  18.                     checkdir($dirname);
  19.                 }
  20.             }
  21.         }
  22.         closedir($dh);
  23.     }
  24. }
  25. function checkBOM($filename)
  26. {
  27.     global $auto;
  28.     $contents   = file_get_contents($filename);
  29.     $charset[1] = substr($contents, 0, 1);
  30.     $charset[2] = substr($contents, 1, 1);
  31.     $charset[3] = substr($contents, 2, 1);
  32.     if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {
  33.         if ($auto == 1) {
  34.             $rest = substr($contents, 3);
  35.             rewrite($filename, $rest);
  36.             return ("<font color=red>BOM found, automatically removed.</font>");
  37.         } else {
  38.             return ("<font color=red>BOM found.</font>");
  39.         }
  40.     } else
  41.         return ("BOM Not Found.");
  42. }

  43. function rewrite($filename, $data)
  44. {
  45.     $filenum = fopen($filename, "w");
  46.     flock($filenum, LOCK_EX);
  47.     fwrite($filenum, $data);
  48.     fclose($filenum);
  49. }
  50. ?>
复制代码
运行该文件,即可一键去掉网站程序里面所有的BOM头。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则  允许回帖邮件提醒楼主

QQ|桌面版|收银台|手机版|小黑屋|站长简介|( 鄂ICP备12009696号  

GMT+8, 2022-1-28 23:36 , Processed in 0.148139 second(s), 31 queries .

Powered by 星火云社区 X3.2!

我们一直在努力前进^_^

快速回复 返回顶部 返回列表