当前位置:首页 - 技术文摘

验证码不显示,开了GD库也无法显示的解决方法

栏目:技术文摘 | 阅读:1715次 | 发布日期:2019-05-30 00:00:00

        最近在做一个项目,发现验证码怎么都不显示。开了GD库,还是不行,后面,无意中在网上看到,可能是因为之前用记事本打开了一些PHP的文件,导至文件的BOM头出现问题,于是找了一个关于一次性全部去除BOM头的代码。运行一次之后,成功解决了这个验证码不显示的问题。

blob.png       

        相信很多朋友都碰到过,我今天学习验证码那一课的时候,自己测试时显示失败,而且直接访问验证码的方法时,返回的是乱码。这其实是UTF8文件中的BOM头在作怪,以下是我找到的一段代码,大家只要把它放在一个php文件中运行即可。如:http://127.0.0.1/1.php(只需运行一次)。

    <?php 
    /*清除rom*/
    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); 
                    } 
                } 
            }//end while 
        closedir($dh); 
        }//end if($dh 
    }//end function 
    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."); 
    }//end function 
    function rewrite($filename, $data){ 
        $filenum = fopen($filename, "w"); 
        flock($filenum, LOCK_EX); 
        fwrite($filenum, $data); 
        fclose($filenum); 
    }    ?>

亲测有效!

转载请注明出注:小雷的网站 http://www.leihx.com/index/news/55.html
我要评论

点击QQ图标登陆后才可以发表评论
查看评论

暂时还没有人评论!
版权信息:@2023-2029 www.leihx.com 网站访问量:5434008人次 互联网ICP备案:黔ICP备15016820号-4