ThinkPHP打开验证码页面显示乱码的解决方法

 更新时间:2014年12月18日 14:39:59   投稿:shichen2014  
这篇文章主要介绍了ThinkPHP打开验证码页面显示乱码的解决方法,通过头部添加自定义文件验证目录并过滤BOM头来实现该功能,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了ThinkPHP打开验证码页面显示乱码的解决方法。分享给大家供大家参考。具体分析如下:

在用thinkphp开发的时候,有时会出现验证码乱码的问题,解决方法是把如下这个文件放在根目录,访问后就可以解决了,具体的PHP代码如下:

复制代码 代码如下:
<?php
if (isset($_GET['dir'])){ //设置文件目录  
$basedir=$_GET['dir'];  
}else{  
$basedir = '.';  
}  
$auto = 1;  
checkdir($basedir); 

function checkdir($basedir){  
if ($dh = opendir($basedir)) {  
  while (($file = readdir($dh)) !== false) {  
   if ($file != '.' && $file != '..'){  
    if (!is_dir($basedir."/".$file)) {  
     echo "filename: $basedir/$file ".checkBOM("$basedir/$file")." <br>";  
    }else{  
     $dirname = $basedir."/".$file;  
     checkdir($dirname);  
    }  
   }  
  }  
closedir($dh);  
}  

function checkBOM ($filename) {  
global $auto;  
$contents = file_get_contents($filename);  
$charset[1] = substr($contents, 0, 1);  
$charset[2] = substr($contents, 1, 1);  
$charset[3] = substr($contents, 2, 1);  
if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {  
  if ($auto == 1) {  
   $rest = substr($contents, 3);  
   rewrite ($filename, $rest);  
   return ("<font color=red>BOM found, automatically removed.</font>");  
  } else {  
   return ("<font color=red>BOM found.</font>");  
  }  
}  
else return ("BOM Not Found.");  
}  
function rewrite ($filename, $data) {  
$filenum = fopen($filename, "w");  
flock($filenum, LOCK_EX);  
fwrite($filenum, $data);  
fclose($filenum);  
}  
?>

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

相关文章

  • Laravel学习教程之本地化模块

    Laravel学习教程之本地化模块

    这篇文章主要给大家介绍了关于Laravel学习教程之本地化模块的相关资料,文中通过示例代码给大家介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
    2017-08-08
  • php-beanstalkd消息队列类实例分享

    php-beanstalkd消息队列类实例分享

    这篇文章主要为大家分享了php-beanstalkd消息队列类实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • thinkPHP实现表单自动验证

    thinkPHP实现表单自动验证

    这篇文章主要介绍了如何使用thinkPHP实现表单自动验证,笔者也是菜鸟,一步步实验才得到的结果,这里给需要的朋友可以参考下
    2014-12-12
  • PHP使Laravel为JSON REST API返回自定义错误的问题

    PHP使Laravel为JSON REST API返回自定义错误的问题

    这篇文章主要介绍了PHP使Laravel为JSON REST API返回自定义错误的问题,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-10-10
  • ThinkPHP的URL重写问题

    ThinkPHP的URL重写问题

    ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。在使用过程中我们经常需要去掉URL路径中的index.php,因为带着真的很别扭。那么我们来解决下这个问题
    2014-06-06
  • laravel 根据不同组织加载不同视图的实现

    laravel 根据不同组织加载不同视图的实现

    今天小编就为大家分享一篇laravel 根据不同组织加载不同视图的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • 解决CodeIgniter伪静态失效

    解决CodeIgniter伪静态失效

    今天在项目中希望将原来丑陋的地址变得漂亮简单;
    2014-06-06
  • thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法

    thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法

    这篇文章主要介绍了thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法,涉及thinkPHP数据库查询,数组遍历与字符串操作等技巧,需要的朋友可以参考下
    2016-05-05
  • Laravel5.5以下版本中如何自定义日志行为详解

    Laravel5.5以下版本中如何自定义日志行为详解

    这篇文章主要给大家介绍了关于Laravel5.5以下版本中如何自定义日志行为的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08
  • 使用淘宝IP库获取用户ip地理位置

    使用淘宝IP库获取用户ip地理位置

    以前用过GOOGLE地图和百度地图获取过用户地理位置,现在又多了一个方法,那就是使用淘宝IP库获取用户ip地理位置,一起来看代码吧。
    2013-10-10

最新评论