php 验证码封装类

<?php
/**
*验证码封装类
*/
class CaptchaLib {
private $length;
//验证码长度
private $font=5;
//内置字体大小  1,2,3,4,5
//通过构造函数赋值
public function __construct($length=4,$font=5) {
$this->length=$length;
$this->font=$font;
}
//生成随机字符串
private function generalCode() {
$char_array=array_merge(range('A','Z'),range('a','z'),range(0,9));//生成一个字母和数字的数组
$index=array_rand($char_array,$this->length);
//随机取4个字符,返回的是字符下标
shuffle($index);
//打乱下标
//拼接字符串
$str='';
foreach($index as $i) {
$str.=$char_array[$i];
}
return $str;
}
//生成验证码
public function generalCaptcha() {
$str=$this->generalCode();
//打开背景图
$bg_path='./captcha/captcha_bg'.rand(1,5).'.jpg';
//背景图地址 5张随机背景图片
$img=imagecreatefromjpeg($bg_path);
//打开图片
//定义前景色
$color=imagecolorallocate($img,0,0,0);
if(rand(1,2)==2)
$color=imagecolorallocate($img,255,255,255);
//将字符串写到图片上
$x=(imagesx($img)-imagefontwidth($this->font)*strlen($str))/2;
$y=(imagesy($img)-imagefontheight($this->font))/2;
imagestring($img,$this->font,$x,$y,$str,$color);
header('content-type:image/png');
imagepng($img);
imagedestroy($img);
}
}
//测试
$captcha=new CaptchaLib(8,4);
$captcha->generalCaptcha();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值