php创建验证码方法:

 <?php
     function getVerify($length=4,$sessName='verify'){
         //验证码
         //获取字符串 去除01ol等较难辨认字符
         $chars = "23456789abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVW";
         $chars = str_shuffle($chars);
         $chars = substr($chars, 0, $length);
         //将字符存入session
         $_SESSION[$sessName] = $chars;
         //定义画布大小
         $width = 80;
         $height = 30;
         $image = imagecreatetruecolor($width, $height);

         //定义背景颜色和边框颜色
         $white = imagecolorallocate($image, 255, 255, 255);
         $black = imagecolorallocate($image, 0, 0, 0);

         //用填充矩形填充画布
         imagefilledrectangle($image, 1, 1, $width-2, $height-2, $white);

         //定义验证码颜色
         $verifyColor = imagecolorallocate($image, 15, 164, 80);

         //将字符写入画布
         for($i=0; $i<$length; $i++){
             $size = 18;
             $angle = mt_rand(-12, 12);
             $x = 5 + $i*$size;
             $y = 23;
             $fontfile = 'GEORGIA.TTF';//字体
             $color = $verifyColor;
             $text = substr($chars, $i, 1);
             imagettftext($image, $size, $angle, $x, $y, $color, $fontfile, $text);
         }
         //干扰点
         for($i=0; $i<80; $i++){
             imagesetpixel($image, mt_rand(0, $width-1), mt_rand(0, $height-1), $verifyColor);
         }
         //干扰线
         for($i=0; $i<3; $i++){
             imageline($image, mt_rand(0, $width-1), mt_rand(0, $height-1), mt_rand(0, $width-1), mt_rand(0, $height-1), $verifyColor);
         }
         //告诉浏览器输出格式
         header("content-type:image/gif");
         //输出
         imagegif($image);
         //销毁,释放内存
         imagedestroy($image);
     }

php 创建验证码方法的更多相关文章

  1. oracle创建job方法

    oracle创建job方法  alter system enable restricted session;--创建表create table G_TEST ( ID     NUMBER(12), ...

  2. 伪验证码(含随机验证码方法)js+css

    HTML----------------------------------------------<!DOCTYPE html><html><head><m ...

  3. Oracle11g手动创建数据库方法

    Oracle11g手动创建数据库方法 参考网页http://www.th7.cn/db/Oracle/201311/36926.shtml 安装路径 我的安装路径是:E:\app\admin\prod ...

  4. js 创建数组方法以及区别

    示例代码: <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF ...

  5. Android Studio当中的创建新方法的快捷键该如何使用?

    当有红线出现的时候,我们的代码并没有编译出错,则需要输入alt+enter则可以得到相应的神奇效果了.这个方法我竟然今天才知道,也真是丢脸了.比如说我们书写了一个新的没有创建的方法,我们直接输入alt ...

  6. 创建线程方法&守护线程

    创建线程方法1. class mythread extends Thread{ 重写run方法 } mythread m=new mythread () 启动:m.start() 创建线程方法2. c ...

  7. 基于PIL模块创建验证码图片

    def get_valid_img(request): # 方式2:基于PIL模块创建验证码图片 from PIL import Image, ImageDraw, ImageFont from io ...

  8. 利用PIL创建验证码

    1. 随机生成rgb 元组 def random_RGB(min, max): return tuple([random.randint(min, max) for i in range(3)])2. ...

  9. PyCharm创建virtualenv方法

    Python的版本众多,在加上适用不同版本的Python Package.这导致在同时进行几个项目时,对库的依赖存在很大的问题.这个时候就牵涉到对Python以及依赖库的版本管理,方便进行开发,vir ...

随机推荐

  1. [转帖]认识固态:SSD硬盘内外结构解析

    认识固态:SSD硬盘内外结构解析 来自: 中关村在线 收藏 分享 邀请 固态硬盘(Solid State Drive),简称固态盘(SSD),是用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元 ...

  2. [转帖]IBM POWER9 E950 and E980 Servers Launched

    IBM POWER9 E950 and E980 Servers Launched https://www.servethehome.com/ibm-power9-e950-and-e980-serv ...

  3. 【Linux笔记】在后台执行scp,实现服务器间无密码文件拷贝。

    远程备份大容量时常会有这样的情形:从远程备份的文件很大,需要很长时间,想在退出ssh后程序依然能继续在后台下载,可以通过建立服务器间安全信息关系和nohup的方式解决. 有两台服务器:A服务器IP 1 ...

  4. HDU4641_K-string

    若它的一个子串出现的次数不少于K次,那么这个子串就是一个K-string. 现给出原串,每次可以向该串后面添加一个字符或者询问当前有多少个不同的K-string. 在线添加查询,解法直指SAM. 其实 ...

  5. hibernate关联关系

    hibernate是一个强大的ORM框架,为了使用面向对象的方式管理数据库,hibernate提供了4中关系设置: 1.一对一 (one-to-one) 2.一对多 (one-to-many) 3.多 ...

  6. JAVA相关概念(一)

    依赖注入和控制反转 首先,这两个词是同一个概念的不同角度的说法,依赖注入感觉是对描述了如何实现,而控制反转则像是描述了一种思想. 依赖注入的流行可以说是由spring的流行带动的,只要是做过sprin ...

  7. jenkins自动部署windwos服务器

    jenkins 持续构建windows 项目 需求说明 公司新购windwos服务器,并配置了堡垒机,由于经常要提交代码进行更新,导致手动部署很是麻烦,故采用公司jenkins实行持续构建 jenki ...

  8. 【uoj125】 NOI2013—书法家

    http://uoj.ac/problem/125 (题目链接) 题意 在网格上写“NOI”,每个格子上有一些权值,要求覆盖的权值最大.书写有一些规则. Solution 将“NOI”分成11个部分, ...

  9. 【bzoj2555】 SubString

    http://www.lydsy.com/JudgeOnline/problem.php?id=2555 (题目链接) 题意 给出一个初始串,维护两个操作.在原串后面加入一个字符串:询问某个字符串在原 ...

  10. HDU.1796 How many integers can you find ( 组合数学 容斥原理 二进制枚举)

    HDU.1796 How many integers can you find ( 组合数学 容斥原理 二进制枚举) 题意分析 求在[1,n-1]中,m个整数的倍数共有多少个 与 UVA.10325 ...