验证码
2018-06-22 05:29:05来源:未知 阅读 ()
1 <?php 2 // 创建画布 3 $img = imagecreatetruecolor(170, 40); 4 5 // 创建背景颜色 6 $backcolor = imagecolorallocate($img,mt_rand(200,255), mt_rand(200,255), mt_rand(200,255)); 7 // 填充背景 8 imagefill($img, 0, 0, $backcolor); 9 10 // 定义数组 11 $arr = array_merge(range('a','z'), range('A','Z'), range(0, 9)); 12 13 // 打乱数组 14 shuffle($arr); 15 16 // 随机抽取数组的下标值 17 $rand_keys = array_rand($arr,4); 18 19 // 遍历获得原数组的值 20 $str = ''; 21 foreach($rand_keys as $value){ 22 $str .= $arr[$value]; 23 } 24 25 // 将验证码字符写到图片上 26 // 计算字符间距 27 $span = ceil(170/(4+1)); 28 29 // 将验证码字符写在图片上 30 for($i=1;$i<=4;$i++){ 31 $stringColor = imagecolorallocate($img, mt_rand(0,150), mt_rand(0,150), mt_rand(0,150)); 32 // 绘制文字 33 imagestring($img, 5, $i*$span, 10, $str[$i-1], $stringColor); 34 } 35 36 // 添加干扰线 37 for($i=1;$i<=9;$i++){ 38 $lineColor = imagecolorallocate($img, mt_rand(100,200), mt_rand(100,200),mt_rand(100,200)); 39 imageline($img,mt_rand(0,169),mt_rand(0,39),mt_rand(0,169),mt_rand(0,39),$lineColor); 40 } 41 42 // 添加干扰点 43 for($i=1;$i<=170*40*0.05;$i++){ 44 $pixelColor = imagecolorallocate($img, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); 45 imagesetpixel($img, mt_rand(0,169), mt_rand(0,39), $pixelColor); 46 } 47 48 // 输出图片 49 header("content-type:image/png"); 50 51 // 清理数据缓冲区 52 imagepng($img); 53 54 // 保存图片 55 imagepng($img,'./hello.png');
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:phpstudy lamp
- PHP写UltraEdit插件脚本实现方法 2020-03-29
- php 带逗号千位符数字的处理方法 2020-03-28
- PHP三元运算符的结合性介绍 2020-03-28
- PHP静态延迟绑定和普通静态效率的对比 2020-03-28
- 基于php流程控制语句和循环控制语句 2020-03-28
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash