在IIS下部署Thinkphp项目,验证码不能显示的解决办法

由于公司租用的是虚拟空间,而且用的是IIS服务器,所以部署PHP的时候就出现很多问题:比如昨天就碰到这个问题:在IIS下部署Thinkphp项目,验证码不能显示

这是生成验证码的方法:

// 制作专门方法实现验证码生成
    function verifyImg() {
        // 以下类Verify在之前并没有include引入
        // 走自动加载Think.class.php autoload()
        $config = array (
                'useNoise' => false,
                'imageH' => 35, // 验证码图片高度
                'imageW' => 100,
                'fontSize' => 14,
                'fontttf' => '4.ttf', // 验证码字体,不设置随机获取
                'length' => 4 
        ) // 验证码位数
;
        $verify = new ThinkVerify ( $config );
        $verify->entry ();
    }

然后再apache下可以,但是在IIS下就是不行,看网上说的最多的是去掉BOM头就可以了,但是我用UE保存为不带BOM头的还是不行

今天终于解决了:

在生成验证码之前:加上ob_clean

// 制作专门方法实现验证码生成
    function verifyImg() {
        // 以下类Verify在之前并没有include引入
        // 走自动加载Think.class.php autoload()
        $config = array (
                'useNoise' => false,
                'imageH' => 35, // 验证码图片高度
                'imageW' => 100,
                'fontSize' => 14,
                'fontttf' => '4.ttf', // 验证码字体,不设置随机获取
                'length' => 4 
        ) // 验证码位数
;
        ob_clean();
        $verify = new ThinkVerify ( $config );
        $verify->entry ();
    }

就OK了,当然这些是在开启GD库的前提下

原文地址:https://www.cnblogs.com/Steven-shi/p/5445379.html