php 生成验证码

<?php
//验证码个数
$num = 4;
//验证码宽度        
$width = 80;
//验证码高度    
$height = 20;
//验证码 注意是字符串
$code = ' ';
//生成验证码
for($i=0; $i<$num; $i++){
    switch (rand(0, 2)){
        case 0:
            //数字
            $code[$i] = chr(rand(48,57));
            break;
        case 1:
            //大写字母
            $code[$i] = chr(rand(65,90));
            break;
        case 2:
            //小写字母
            $code[$i] = chr(rand(97,122));
            break;
    }
}
//验证码保存到session中
@session_start();
$_SESSION['verifycode'] = $code;
//创建图像
$image = imagecreate($width, $height);
//为图像填充背景色
imagecolorallocate($image, 255, 255, 255);
//生成干扰因素
for($i=0; $i<$width; $i++){
    $color = imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255));
    //画一个点儿
    imagesetpixel($image, rand(1, $width), rand(1, $height), $color);
}
//打印验证码到图像
for($i=0; $i<$num; $i++){
    $color = imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255));
    imagechar($image, 5, ($width/$num)*$i , rand(0,4) , $code[$i], $color);
}
//输出图像到浏览器
header("Content-type:image/png");
imagepng($image);
//释放资源
imagedestroy($image);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值