欢迎光临《小雷的网站》
加入收藏 | 设为首页 | 联系我们
小雷的网站
游客,您好!
请使用QQ先登陆
  • 最新公告:如果有什么问题,请大家联系客服处理.客服在线时间:12:00-23:59 其它时间段请留言.
  • 博文详细内容

    验证码不显示,开了GD库也无法显示的解决方法
    资讯栏目:技术文摘 | 发布者:小雷 | 关注度:1550次 | 发布时间: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/news/55.html
    评论

    您还没有登陆,请登陆后再评论吧!
    本站只支持QQ登陆,请不要发布不当的以及违反国家法律的言论!
    版权信息:@2018-2025 www.leihx.com 网站访问量:5352571人次 互联网ICP备案:黔ICP备15016820号-4
    联系地址:贵州省铜仁市碧江区川硐教育园区 合作咨询:400-180-5676 (周一至周五 9:00-18:00)