当前位置:首页 > 日记 > 正文

PHP生成验证代码的一个简单示例

PHP生成验证代码的一个简单示例
读遗嘱,你不会打我,不多说,(不是很多人都在说恶毒的话)

1首先看代码
< PHP
标题(内容类型:文本/ HTML;字符集= UTF-8); / /套编码风格的页面
页眉(内容类型:图像);注意浏览器输出是jpeg格式的图像。

$ img =新建一个真彩色图像(150,50); / /创建画布设置X轴Y轴的50尺寸150

背景颜色= imagecolorallocate美元(美元IMG,mt_rand(0255),mt_rand(0255)、(0255)mt_rand); / /分布的背景颜色
imagefill($ 0, 0美元的数据,背景颜色); / / / /填充图像背景
imagejpeg($ IMG); / /输出图像
销毁一图像($ IMG); / /破坏形象
>
现在,把上面的代码结合起来分析和分析上面用到的几个函数:

(1)新建一个真彩色图像();

新建一个真彩色图像,创建一个真正的彩色图像(感觉哇,这么长时间,其实仔细看的话,记得图像/创建/真的/彩色,真彩色图像是什么往下看.

资源新建一个真彩色图像(int int美元美元的宽度,高度)
新建一个真彩色图像的两个函数()和()都可以创造油画画面欣赏
资源画面欣赏(int int x_size美元,美元y_size)
新建一个真彩色图像()创建一个大小为X和Y的黑色图像(即使它被称为真彩色图像默认是黑色的,)。如果我们想改变背景颜色,我们需要填写颜色功能imagefill($ IMG,0,0,合色)。

Imagecreate create a new blank image resource, add background color with imagecolorAllocate ()

上述两个函数只是函数的两种方法。

(2)imagecolorallocate();

imagecolorallocate为图像指定颜色
国际imagecolorallocate(资源为图像,int int美元美元的红色,绿色,蓝色为美元)
随着这些参数的RGB颜色组合的颜色是一个0到255或十六进制整数0x00到0xFF。

(3)mt_rand();
mt_rand产生更好的随机数

mt_rand(int int int max min美元,美元)
$分钟可选,返回最小值(默认:0)$最大可选,返回最大值(默认:mt_getrandmax())

这是让他随机生成的背景色,0-255的随机值。所以页面不刷新画布背景颜色是不同的。

设计素描 uff1a
2启动干扰线、干扰点,防止验证图像被二次识别。
< PHP
标题(内容类型:文本/ HTML;字符集= UTF-8); / /套编码风格的页面
页眉(内容类型:图像);注意浏览器输出是jpeg格式的图像。

$ img =新建一个真彩色图像(150,50); / /创建画布设置X轴Y轴的50尺寸150

背景颜色= imagecolorallocate美元(美元IMG,mt_rand(0255),mt_rand(0255)、(0255)mt_rand); / /分布的背景颜色

添加干扰线和3个周期,随机背景色
($ i = 0;$ i < 3;$ + +){

颜色= imagecolorallocate美元(美元IMG,mt_rand(0255),mt_rand(0255),mt_rand(0255));
imageline($ IMG,mt_rand(0150),mt_rand(0.5),mt_rand(0150),mt_rand(0.5美元),颜色);

}
添加干扰,25个循环,随机背景色
($ i = 0;$ i < 25;$ + +){

分别为imagecolorallocate美元(美元IMG,mt_rand(0255),mt_rand(0255),mt_rand(0255));
imagesetpixel($ IMG,mt_rand(0150),mt_rand(0,60),$分别);

}

imagefill($ 0, 0美元的数据,背景颜色); / / / /填充图像背景
imagejpeg($ IMG); / /输出图像
销毁一图像($ IMG); / /破坏形象
>
功能分析:

(1)imageline();

imageline绘制线段

布尔imageline(资源为图像,int int美元美元X1,Y1,int int美元美元x2,y2)

imageline()使用的颜色在图像的坐标X1画一条线,Y1到x2,y2(图像的左上角的是0, 0)。

imageline($ IMG,mt_rand(0150),mt_rand(0.5),mt_rand(0150),mt_rand(0.5美元),颜色),这意味着从坐标X1,$ IMG随机,在画布上为IMG。

(2)imagesetpixel();

imagesetpixel -绘制单个像素

布尔imagesetpixel(资源为图像,int x美元,int Y元,int $色)imagesetpixel()是用来在在左上角的图像坐标的彩色图像颜色美元画一个点(0, 0)。

imagesetpixel($ IMG,mt_rand(0150),mt_rand(0,60),分别美元);相同的效果图的具体含义:

3添加验证字母数字
< PHP
标题(内容类型:文本/ HTML;字符集= UTF-8); / /套编码风格的页面
页眉(内容类型:图像);注意浏览器输出是jpeg格式的图像。

$ img =新建一个真彩色图像(150,50); / /创建画布设置X轴Y轴的50尺寸150

背景颜色= imagecolorallocate美元(美元IMG,mt_rand(0255),mt_rand(0255)、(0255)mt_rand); / /分布的背景颜色

添加干扰线和3个周期,随机背景色
($ i = 0;$ i < 3;$ + +){

颜色= imagecolorallocate美元(美元IMG,mt_rand(0255),mt_rand(0255),mt_rand(0255));
imageline($ IMG,mt_rand(0150),mt_rand(0.5),mt_rand(0150),mt_rand(0.5美元),颜色);

}
添加干扰,25个循环,随机背景色
($ i = 0;$ i < 25;$ + +){

分别为imagecolorallocate美元(美元IMG,mt_rand(0255),mt_rand(0255),mt_rand(0255));
imagesetpixel($ IMG,mt_rand(0150),mt_rand(0,60),$分别);

}

添加验证字母或数字的需要
rand_str美元=qwertyuiopasdfghjklzxcvbnm1234567890 ; / /需要用一些字母和数字认证
str_arr美元=(阵列); / /数组名
对于($ i = 0;$ i < 4;$ + +){ 4循环,有四个随机字母或数字
POS =(0美元mt_rand strlen($ rand_str)- 1);
str_arr美元{ } = $ rand_str { $ POS }; / /临时交换
}

x_start美元= 150 / / / 4;单个字符的位置

foreach(str_arr美元美元关键){
字体颜色= imagecolorallocate美元(美元IMG,mt_rand(0255),mt_rand(0255),mt_rand(0255));
imagettftext($ IMG,25,mt_rand(- 15,15),x_start美元,50美元/ 2,字体颜色,C: / / / Windows字体宋体。TTF
x_start美元= 20; / /后沿着穿越+ 20 x轴的单个字符
}

imagefill($ 0, 0美元的数据,背景颜色); / / / /填充图像背景
imagejpeg($ IMG); / /输出图像
销毁一图像($ IMG); / /破坏形象
>
功能:

Imagettftext();

imagettftext在TrueType字体的图像文字

阵列(资源imagettftext美元浮动图像,美元浮动美元大小,角度,int x美元,int Y元)。
分析以下代码:

imagettftext($ IMG,25,mt_rand(- 15,15),x_start美元,50美元/ 2,字体颜色,C: / / / Windows字体宋体。TTF

虽然美元-----------帆布

这25 -----------字体大小。

mt_rand(- 15,15),从左到右读课文0度角点系统。值越高,代表逆时针旋转90度。例如,代表文本读起来。(它的字体,角度的问题)

x_start美元----------很容易理解是角色的X轴的位置

的50 / 2 ----------字符高度

美元----------字符颜色字体颜色

到C的路径: / / / verdana.ttf Windows字体字体字

关键-----------穿越后人物美元

uff1a效应

它看起来很可爱。

以上是一个简单的PHP生成验证码的例子,是由萧边。我们希望能给你一个参考,并希望你能支持它。

相关文章

用Excel2007制作学校绩效的通知

用Excel2007制作学校绩效的通知

通知,学校,绩效,电脑软件,每一个时期,教师需要发出通知,每个学生的家长,包括学生成绩、评语等内容,以前我们经常使用手册或印刷,必须进行输入学生成绩排名、繁琐,工作量非常大。事实上,Excel的一些功能和功能可用于排列学生的成绩,并可以实现批量打…

MySQL排序原理及实例分析

MySQL排序原理及实例分析

实例分析,排序,原理,电脑软件,MySQL,前言 排序是数据库的一个基本功能,MySQL也不例外,用户可以通过语句顺序来实现指定结果集的排序。事实上,他们是由报表不仅秩序,通过报表,不同的报表组,而且使用排序。本文将介绍如何使用SQL简单索引避免订货成…

PS图象处理软件使用过滤器来创建小

PS图象处理软件使用过滤器来创建小

图象处理,软件使用,镜头光晕,过滤器,照片,女孩喜欢拍照,虽然现在各种手机美女软件,但依然不能阻挡美女在追求美。今天,我会教你漂亮的女孩很简单的方法,迅速把自己的照片变成小清新!来和我一起学习! 步 1。首先,打开一张图片在PS / PS图象处理软…

MySQL未能安装MySQL安装失败的原因

MySQL未能安装MySQL安装失败的原因

安装,解决方案,安装失败,原因,电脑软件,未安装MySQL数据库!MySQL最后一个步骤没有安装!MySQL未安装!是不是很头痛这很麻烦。现在你不用担心了。萧边已经理清了MySQL安装MySQL的安装失败的解决方案失败的原因。 难点1:MySQL 5.1安装过程报告应…

PS如何调整倾斜图像

PS如何调整倾斜图像

调整,图像图像,电脑软件,PS,有时我们会遇到一些手机拍摄的照片,要么倾斜,要么看不同的角度。与扫描图形不同,它们是正方形正的。然后用ps软件解决这个问题。让我们看一看。 步 首先,让我们选择一个图片,并选择这个日历的手机拍摄的照片。 我们…

用excel轻松兑换人民币

用excel轻松兑换人民币

人民币,轻松,电脑软件,excel,我们应该把人民币的小金额大写格式,用Excel格式{ }变换,dbnum2 G /总在自定义格式格式类型,dbnum2 } {克/通用格式元。 我们应该把人民币的小金额大写格式,用Excel格式{ }变换,dbnum2 G /总在自定义格式格式类型,dbn…

如何进入QQ群论坛QQ技巧

如何进入QQ群论坛QQ技巧

群论,技巧,电脑软件,QQ,昨晚,一个小朋友问萧边QQ群怎么没有快速入门。它很久没有发现了。今天,萧边写的这个方法与大家分享,希望能帮助你。 进入QQ群论坛的方法 打开电脑上的QQ,输入个人帐户和密码,登录到QQ主面板,选择上组/讨论组列。 在QQ群…

Oracle中几种时间戳的介绍与实例

Oracle中几种时间戳的介绍与实例

时间戳,几种,实例,电脑软件,Oracle,几种时间戳类型的比较 时间戳 时间戳类型和日期的区别是日期不精确到毫秒,而时间戳可以精确到毫秒。毫秒的中值是0-9位,默认是6位。 SQL >选择TP timestamp_test; TP ------------------------------------…

双击使用中的excel

双击使用中的excel

双击,电脑软件,excel,1。巧妙的窗口 如果仔细观察,可以发现在Excel中的垂直滚动条上方有黑色三角形按钮相邻,折叠按钮,双击(以下简称双击双击鼠标左键)可以在一个滚动的水平当前窗口右一分为二;双折叠按钮可以将当前窗口在一分为二。 2。调整列…

如何恢复MySQL主一致性

如何恢复MySQL主一致性

一致性,恢复,电脑软件,MySQL,最近被告知,MySQL数据库的数据不一致问题,炒制,在同步的过程中,对图书馆的设备,使用mysql >显示奴隶地位 G的观点,正如预期的那样,在为主键约束违反INSERT语句编写,从而停止同一步。现在的问题很清楚,那是如何恢复的主从…

Oracle自定义异常的详细示例

Oracle自定义异常的详细示例

自定义异常,示例,详细,电脑软件,Oracle,1。弹出错误框: 示例代码: 声明 v_count数; 开始 select count(*)从部门到v_count; 如果v_count<10 raise_application_error(20001,数小于10); 最后如果; 结束; 实施结果: 2。控制台显示: 示例代码: 声明 v_count数…