阿里云
阿里云多端小程序中小企业获客首选
发表主题 回复主题
  • 8162阅读
  • 2回复

[编程语言]轻松实现BOM清除,还原网站验证码

级别: 论坛版主
发帖
1784
云币
3327

          有些小白用户,我也不例外,不会使用开发工具,用记事本打开网站程序文件,如UTF-8编码的php等,会产生大量Bom文件,这样带来的后果就是有验证码的站点验证码无法显示。 bj6Yz,g F  
           下面来一段代码实现bom清除,还验证码一片光明。 Yg,b ;H  
           请注意无论你要编辑还是新建网页文件,请使用比较专业一点的工具,对不需要开发工作环境的,推荐notepad++这个小的文本编辑工具。 Hc8He!X*#  
           打开notepad++,新建一个文件,cleanbom.php,这里保存的时候写完整文件名,包括后辍,然后文件类型选择 All Type 这样就新建了一个php文件。 T6=|)UTe1  
            写入下面代码 H>;,r ,  
  1. <?php
  2. //这是一个BOM文件清理工具,请执行http://你的域名/cleanbom.php。
  3. //文件自动执行所有目录下的Bom清理。
  4. //如需要帮助请加群:309062386  或是访问:http://www.vestavps.com
  5. if (isset($_GET['dir'])){ //config the basedir
  6. $basedir=$_GET['dir'];
  7. }else{
  8. $basedir = '.';
  9. }
  10. $auto = 1;
  11. checkdir($basedir);
  12. function checkdir($basedir){
  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/
  18. $file ".checkBOM("$basedir/$file")." <br>";
  19.     }else{
  20.      $dirname = $basedir."/".
  21. $file;
  22.      checkdir($dirname);
  23.     }
  24.    }
  25.   }
  26. closedir($dh);
  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. function rewrite ($filename, $data) {
  50. $filenum = fopen($filename, "w");
  51. flock($filenum, LOCK_EX);
  52. fwrite($filenum, $data);
  53. fclose($filenum);
  54. }
  55. ?>
将以上文件上传到网站根目录,输入http://你的域名/cleanbom.php 回车,文件将动执行清理。 5$HG#2"Kb#  
?E|=eO"I1  
如果你实在不想写,那就直接下载我写好的文件,文件我放在百度云网盘中,因为是php文件,论坛是不允许有这样的附件的。
7iwck.*  
链接:http://pan.baidu.com/s/1hqhKiTQ 密码:29sc
关键词: 网站 验证码 BOM
本人不是云栖社区工作人员。
无论您在使用中遇到什么问题,不要出言不逊!谢谢合作!
级别: 码农
发帖
122
云币
301
只看该作者 沙发  发表于: 2015-09-03
Re轻松实现BOM清除,还原网站验证码
厉害     是好东西  
级别: 新人
发帖
1
云币
2
只看该作者 板凳  发表于: 2016-06-25
Re轻松实现BOM清除,还原网站验证码
遇到了这个问题 用这个方法试试先
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
验证问题: 阿里云官网域名是什么? 正确答案:www.aliyun.com
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)