php 验证码 图像存在错误无法显示
Posted 倒霉的大熊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 验证码 图像存在错误无法显示相关的知识,希望对你有一定的参考价值。
<?php $height = 300; $width = 300; $im = imagecreatetruecolor($width, $height); $white = imagecolorallocate ($im, 255, 255, 255); $blue = imagecolorallocate ($im, 0, 0, 64); imagefill($im, 0, 0, $blue); imagestring($im, 10, 100, 120, ‘Hello,PHP‘, $white); ob_clean(); //如果验证码输出不了,加上这一句就可以输出了 header (‘Content-type: image/png‘); imagepng($im);imagedestroy($im); ?>
<?php //无bug的国旗测试 //ob_clean(); header("Content-Type:image/jpeg"); $ing = imagecreatetruecolor(700,410); //新建一个真彩色图像,返回值为一个图像标识符,背景默认为黑色,参数(x_size*y_size) $red = imagecolorallocate($ing,255,0,0);//定义背景颜色 $yellow = imagecolorallocate($ing,237,231,32);//定义黄色 imagefill($ing,0,0,$red);//填充颜色,以坐标(0,0)开始起填充 //数组坐标,表示(x1,y1,x2,y2,x3,y3.....x11,y11); $a = array(90,30,108,73,157,73,119,102,135,152,93,123,52,152,66,102,29,74,76,73,90,30); imagefilledpolygon($ing,$a,10,$yellow);//画一个多边形:10表示顶点总数,$yellow表示填充色 $a1 = array(229,25,229,43,248,48,229,55,229,74,217,60,198,66,210,50,197,34,218,39,229,25); imagefilledpolygon($ing,$a1,10,$yellow); $a2 = array(227,108,227,127,245,134,228,139,227,157,215,143,196,149,208,132,196,117,215,122,227,108); imagefilledpolygon($ing,$a2,10,$yellow); $a3 = array(163,184,163,204,181,211,163,216,163,234,152,220,132,225,144,209,132,193,151,199,163,184); imagefilledpolygon($ing,$a3,10,$yellow); $a4 = array(65,209,65,228,84,235,65,240,65,259,54,245,33,249,46,233,34,217,53,224,68,209); imagefilledpolygon($ing,$a4,10,$yellow); imagejpeg($ing); imagedestroy($ing); ?>
注!关于验证码无法显示,首先判断GD库是否开启;
默认配置下,php输出是先到输出缓冲区(output_buffering),只要数据还没有真正发送到浏览器(严格来说是tcp buffer),那么还是有机会清空先前的缓冲区里面的数据,使用内置的ob_clean函数即可。
以上是关于php 验证码 图像存在错误无法显示的主要内容,如果未能解决你的问题,请参考以下文章
Nginx 下无法读取session 导致 thinkphp验证码错误