php中gd画图不输出,PHP用GD库绘制图片,制作验证码浏览器不能输出

这段PHP代码实现了生成随机字符串验证码并将其绘制到PNG图片上的功能。首先,通过array_merge和str_shuffle生成并打乱包含数字和字母的字符数组,然后从中随机抽取四位作为验证码。接着,使用PHP的GD库创建画布,填充背景色,绘制矩形,再将随机字符串写入图片。最后,输出图片到浏览器,确保在header()函数前添加ob_clean()清除缓存。
摘要由CSDN通过智能技术生成

1,代码如下:

function fillRandomString(){

//生成验证码

$char = array_merge(range(0, 9),range("a", "z"),range("A", "Z"));

//讲字符串$char打乱

$luan = str_shuffle(implode("", $char));

//从字符串中随机取四位

return  substr($luan, 0,4 );

}

//创建画布

header('content-type:p_w_picpath/png');

$height = 20;

$width = 80;

$p_w_picpath = p_w_picpathcreate($width, $height);

$black = p_w_picpathcolorallocate($p_w_picpath, 0, 0, 0);

$white = p_w_picpathcolorallocate($p_w_picpath, 255, 255, 255);

//画图片矩形

p_w_picpathfilledrectangle($p_w_picpath, 1, 1, $width-2, $height-2, $white);

//填充字符串

p_w_picpathstring($p_w_picpath, 20, 20,  4, fillRandomString(), $black);

//输出图片

p_w_picpathpng($p_w_picpath);

//销毁图片

p_w_picpathdestroy($p_w_picpath);

但是在浏览器上输出显示不了,原因是在向浏览器输出之前没有清理缓存

在header()之前加入代码 ob_clean();即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值