/*
* 验证码类
*/
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 = array_merge($upper_str,$lower_str,$num);
// 为了让产生的数字更随机, 先打乱一下顺序
shuffle($data);
// 从上面数组中随机取出 4 个
$randoms = array_rand($data,4);
// 通过下标获得对应的字符
$str = '';
foreach ($randoms as $v){
$str .= $data[$v];
}
echo '
- ';
来源: http://www.bubuko.com/infodetail-1862046.html