admin 发表于 2020-11-25 10:09

php生成简单验证码代码案例

php生成简单验证码代码案例
<?php
//第一步:创建随机字符串
//1.1创建字符数组
$all_array=array_merge(range('a','z'),range('A','Z'),range(0,9));      //所有字符数组
$div_array=['1','l','0','o','O','I'];      //去除容易混淆的字符
$array=array_diff($all_array,$div_array);      //剩余的字符数组
unset($all_array,$div_array);                //销毁不需要使用的数组
//1.2      随机获取4个字符
$index=array_rand($array,4);      //随机取4个字符,返回字符下标,按先后顺序排列
shuffle($index);      //打乱字符
//1.3      通过下标拼接字符串
$code='';
foreach($index as $i){
      $code.=$array[$i];
}
//第二步:创建画布
$img=imagecreate(150,30);
imagecolorallocate($img,255,0,0);                        //分配背景色
$color=imagecolorallocate($img,255,255,255);      //分配前景色
//第三步:将字符串写到画布上
$font=5;                //内置5号字体
$x=(imagesx($img)-imagefontwidth($font)*strlen($code))/2;
$y=(imagesy($img)-imagefontheight($font))/2;
imagestring($img,$font,$x,$y,$code,$color);
//显示验证码
header('content-type:image/gif');
imagegif($img);小结
[*]range():生成指定范围的数组
[*]array_merge():合并数组
[*]array_diff():计算数组的差集
[*]array_rand():随机获取数组元素
[*]shuffle():打乱数组
[*]去除容易混淆的字符
[*]数组要打乱
[*]起始点x=(图片宽度-字符串宽度)/2      字符串宽度=字符的宽度*字符的个数
[*]起始点y=(图片高度-字符高度)/2
页: [1]
查看完整版本: php生成简单验证码代码案例