ThinkPHP打开验证码页面显示乱码的解决方法
本文实例讲述了ThinkPHP打开验证码页面显示乱码的解决方法。分享给大家供大家参考。具体分析如下:
在用thinkphp开发的时候,有时会出现验证码乱码的问题,解决方法是把如下这个文件放在根目录,访问后就可以解决了,具体的PHP代码如下:
<?php if(isset($_GET['dir'])){//设置文件目录 $basedir=$_GET['dir']; }else{ $basedir='.'; } $auto=1; checkdir($basedir);
functioncheckdir($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); } }
functioncheckBOM($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("<fontcolor=red>BOMfound,automaticallyremoved.</font>"); }else{ return("<fontcolor=red>BOMfound.</font>"); } } elsereturn("BOMNotFound."); } functionrewrite($filename,$data){ $filenum=fopen($filename,"w"); flock($filenum,LOCK_EX); fwrite($filenum,$data); fclose($filenum); } ?>