GD2简易字母数字验证码

gd库是学习php比较早接触到的部分,因为学过一些canvas,所以感觉上手快,容易出效果,感觉验证码又有点小神秘,从最基础的做开始,熟悉一些函数,函数名真的长,但是很多都是见而知其意,后面还会封装成类和函数,包括完整的验证

GD2使用步骤

  • 创建画布
  • 创建颜色
  • 开始绘制
  • 格式输出
  • 销毁资源

imagefontwidth()


verify_code.php.jpg

关键点在于随机出现四个摆放不同的字符,还有另一种简易方式

$string = join("",array_merge(range('a','z'),range('A','Z'),range(0,9)));
$text = str_shuffle($string)[0];

str_shuffle( )用于随机打乱字符串,返回字符串,截取第一个字符

加上点和线的干扰元素

for ($i = 0;$i < 50;$i++){
    imagesetpixel($image,mt_rand(0,$width),mt_rand(0,$height),randcolor($image));
}

for ($i = 0;$i < 3;$i++){
    imageline($image,mt_rand(0,$width),mt_rand(0,$height),mt_rand(0,$width),mt_rand(0,$height),randcolor($image));
}

里面的randcolor($image)是封装的函数

function randcolor($image){
    return imagecolorallocate($image,mt_rand(30,120),mt_rand(30,120),mt_rand(30,120));
};
gd2_demo4.php.png

你可能感兴趣的:(GD2简易字母数字验证码)