PHP创建图片验证码
admin
2023-06-12 13:22:22
0

代码如下:

header("Content-type: text/html; charset=utf8");


/*

 * 函数名:createImage

 * 描述:获取验证图片验证码

 * @param $width 画布的宽

 * @param $height 画布的高

 * @param $number 验证码位数

 */

function createImage($width,$height,$number){

// 1.创建画布

// imagecreatetruecolor执行创建操作(创建一幅真彩色的图像) 

// $width:画布的宽 $height:画布的高

$img = imagecreatetruecolor($width, $height); 


// 2.为画布填充背景色

// mt_rand函数返回0-120随机数

// imagecolorallocate为一幅图像分配颜色

  $bgColor = imagecolorallocate($img, mt_rand(0,120), mt_rand(0,120), mt_rand(0,120));

  // 填充操作

  imagefill($img, 1, 1, $bgColor);

  // 3.定义在画布上的显示文字

  // 显示随机字符的范围

  $arr = array_merge(range('a', 'z'), range('A', 'Z'), range(0, 9));

  // 得到指定位数的随机字符

  $str = '';

  // 把数组中的元素按随机顺序重新排序

  shuffle($arr);

  // 返回包含随机键名的数组 

  $keyArr = array_rand($arr,$number);

foreach ($keyArr as $value) {

$str .= $arr[$value];

}


  // 4.将字符写入到画布

  $span = ceil($width/($number+1));

for ($i=1; $i <= $number; $i++) {

// 为画布创建画笔色

$charColor = imagecolorallocate($img, mt_rand(120,255), mt_rand(120,255), mt_rand(120,255));

// 水平地画一行字符串

// $img:画布

// 5:字体

// $span*$i:x轴坐标

// 12:Y坐标

// $str[$i-1]:字符串

// $charColor:颜色

imagestring($img, 5, $span*$i, 12, $str[$i-1], $charColor);

}

 

// 5.创建干扰线

for ($i=0; $i < 8; $i++) {

// 创建干扰线颜色

$linColor = imagecolorallocate($img, mt_rand(75,150), mt_rand(75,150), mt_rand(75,150));

// 创建干扰线

imageline($img, mt_rand(0,$width-1), mt_rand(0,$height-1), mt_rand(0,$width-1), mt_rand(0,$height-1), $linColor);

}

 

// 6.显示图片

header('content-type:image/png');

// 清空输出缓冲区

ob_clean();

// 打印图片

imagepng($img);

}


// 调用创建验证码图片函数

createImage(150,40,4);

运行结果如下:

PHP创建图片验证码

PHP创建图片验证码

相关内容

热门资讯

半岛电视台:美伊就资产解冻问题... 新华社多哈5月25日电(记者汪强)卡塔尔半岛电视台25日报道,一名了解伊朗高级代表团在多哈会谈情况的...
多地积极探索算电协同创新模式 本报记者 李万晨曦 近日,南方电网广西电网公司联合中国移动广西公司开展了首次算电协同响应实景测试,成...
乘舟向天宫 逐梦揽星河——神舟... 乘舟向天宫  逐梦揽星河 ——神舟二十三号载人飞行任务乘组出征侧记 ■杨子凡 解放军报记者 赵 倩 ...
基恩士相机无图像维修服务商梳理... 导语:在工业自动化设备运维中,基恩士相机作为视觉检测的核心部件,其稳定性直接影响生产线效率。针对无图...
新型3D打印技术问世 机构高频... 新型3D打印技术问世机构高频调研3只概念股 人民财讯5月25日电,2026年以来,3D打印行业内好消...
DeepSeek V4永久降价... 快科技5月25日消息,DeepSeek近日更新API文档,宣布DeepSeek-V4-Pro模型在5...
俄外长告知美方对乌打击计划 新华社莫斯科5月25日电(记者侯鸣)俄罗斯外交部网站25日发布通告说,俄外交部长拉夫罗夫当天同美国国...
伊朗总统下令:恢复互联网至今年... △资料图当地时间25日晚,伊朗总统佩泽希齐扬下令恢复伊朗互联网至今年1月大规模断网前的状态。(总台记...
国家两部门:开展矿山机器人应用... 国家矿山安全监察局综合司 工业和信息化部办公厅关于开展矿山机器人应用验证试点工作的通知 国家矿山安全...
打造“终身学习之城”,杭州积极... 潮新闻客户端 记者 徐婷 俞刘东 通讯员 许慧敏 人工智能时代日新月异,培养适应时代生存发展的人才,...