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

  本文实例讲述了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程序设计有所帮助。