首页 > 代码库 > 画布出现验证码
画布出现验证码
<?php
/*
* 验证码类
*/
class Captcha
{
//成员属性
private $_width = 100; //画布默认宽度
private $_height = 25; //画布默认的高度
//成员方法
//生成一张图像,并输出到浏览器
public function makeImage()
{
//1. 先创建一个画布(在内存中创建一个图像资源)
$image = imagecreatetruecolor($this->_width,$this->_height);
//2. 给画布填充颜色,否则默认是黑色的很恐怖 allocate分配
$color = imagecolorallocate($image, mt_rand(200,255), mt_rand(200,255), mt_rand(200,255));
imagefill($image, 0, 0, $color);
//创建随机的文字
//4. 直接在浏览器输出这个画布
header("Content-Type:image/png");
//生成图像,如果增加第二个参数表示保存到本地
imagepng($image);
//5. 销毁内存中图像资源
imagedestroy($image);
}
//产生随机文字的函数
public function makeCode()
{
//随机的文字可能是数字、字母
//range()会产生一个从a到z的字符的集合(数组)
$upper_str = range(‘A‘,‘Z‘);
$lower_str = range(‘a‘,‘z‘);
$num = range(1,9);
//把上面三个数组合并
$data = http://www.mamicode.com/array_merge($upper_str,$lower_str,$num);
//为了让产生的数字更随机,先打乱一下顺序
shuffle($data);
//从上面数组中随机取出4个
$randoms = array_rand($data,4);
//通过下标获得对应的字符
$str = ‘‘;
foreach ($randoms as $v){
$str .= $data[$v];
}
echo ‘<pre>‘;
var_dump($str);
}
}
$captcha = new Captcha();
//$captcha -> makeImage();
$captcha -> makeCode();
画布出现验证码