博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php简单实用的验证码生成类
阅读量:5877 次
发布时间:2019-06-19

本文共 2208 字,大约阅读时间需要 7 分钟。

1 
code_len; ++$i) {18 // 随机取得一个字符下标19 $rand_index = mt_rand(0, $chars_len-1);20 // 利用字符串的下标操作,获得所选择的字符21 $code .= $chars[$rand_index];22 }23 // 存储于session中24 @session_start();25 $_SESSION['captcha_code'] = $code;26 return $code;27 28 }29 /**30 * 生成验证码图片31 * @param int $code_len 码值长度32 */33 public function makeImage() {34 // 一:处理码值,这里我们添加了一个函数 _mkCode()生成随机的验证码35 $code = $this->_mkCode();36 37 // 二,处理图像38 // 创建画布39 $image = imagecreatetruecolor($this->width, $this->height);40 // 设置背景颜色[背景就会是随机]41 $bg_color = imagecolorallocate($image, mt_rand(200, 255), mt_rand(200, 255), mt_rand(200, 255));42 // 填充背景43 imagefill($image, 0, 0, $bg_color);44 45 // 分配字体颜色,随机分配,黑色或者白色46 if (mt_rand(0, 1) == 1) {47 $str_color = imagecolorallocate($image, 0, 0, 0);// 黑色48 } else {49 // 整数支持 不同进制表示50 $str_color = imagecolorallocate($image, 255, 0xff, 255);// 白色51 }52 // 内置5号字体53 $font = 5;54 // 位置55 // 画布大小56 $image_w = imagesx($image);57 $image_h = imagesy($image);58 // 字体宽高59 $font_w = imagefontwidth($font);60 $font_h = imagefontheight($font);61 // 字符串宽高62 $str_w = $font_w * $code_len;63 $str_h = $font_h;64 // 计算位置[把我们字符串在中间]65 $str_x = ($image_w - $str_w) / 2 - 20;66 $str_y = ($image_h-$str_h) / 2;67 // 字符串68 imagestring($image, $font, $str_x, $str_y, $code, $str_color);69 70 // 设置干扰71 for($i=1; $i<=$this->pixel_number; ++$i) {72 $color = imagecolorallocate($image, mt_rand(0, 200), mt_rand(0, 200), mt_rand(0, 200));73 imagesetpixel($image, mt_rand(0, $this->width-1), mt_rand(0,$this->height-1), $color);74 }75 76 // 输出,销毁画布77 //ob_clean(),清空缓存,保证正确输出.78 ob_clean();79 header('Content-Type: image/jpeg');80 imagejpeg($image);81 imagedestroy($image);82 }83 84 }

 

转载于:https://www.cnblogs.com/ggkxg/p/5679052.html

你可能感兴趣的文章
iView实现自定义Modal
查看>>
如何在云帮上配置https
查看>>
JQuery干货篇之插入元素
查看>>
Imperva开源域目录控制器,简化活动目录集成
查看>>
可观察性驱动开发,探索未知之地
查看>>
Webpack构建兼容IE8
查看>>
Deis发布1.4版本,支持Microsoft Azure
查看>>
解读2016之Golang篇:极速提升,逐步超越
查看>>
原创:新手布局福音!微信小程序使用flex的一些基础样式属性(二)
查看>>
Swift 烧脑体操(二) - 函数的参数
查看>>
用Elm语言降低失败的风险
查看>>
荷兰商业银行使用精益领导力推行改进
查看>>
cisco 多生成树MST笔记
查看>>
FPGA设计——图像处理(锐化增强)
查看>>
LINUX REDHAT第十三单元练习题
查看>>
Play Framework
查看>>
集合转数组注意
查看>>
gng3使用方法,正确的路由器防火墙安全配置方式
查看>>
VIP漂移生效时间可以用如下命令去缩短
查看>>
基于域名虚拟主机及主站迁移
查看>>