
1。数字验证码:
< PHP
第一个例子是最常见的数字验证码,验证码。多少个数字可以由他们自己决定。
是一个包含几个数字的生成验证代码。
getvalidate(4,60,20);
功能getvalidate($num美元美元,W,H){
= $代码;
($ i = 0;$ i $;$;$ + +){
为代码=兰特(0.9);
}
代码变量最后是一个$数字,是一个字符串。如果下面是生成四位数字验证代码,您可以使用兰德(10009999代)
页眉(内容类型:图像);
$ img =画面欣赏($ W $ H); / /创建一个图片的长度和宽度参数是定义一个好的开始。
黑imagecolorallocate美元(美元IMG,0,0,0); / /定义黑
灰色= imagecolorallocate美元(美元IMG,200200200); / /灰色的定义
背景颜色= imagecolorallocate美元(美元IMG,255255255); / /白色的背景颜色
imagefill($ IMG,0,0,为灰色);
/ / imagefill(合图像,ING X元,int Y元,int $色),在图像坐标x,y与颜色执行区
对验证码的图片框验证代码,感觉不错,其实画边框就是给他画一个矩形。
Imagerectangle($ IMG,0,0,1美元美元美元,H-1,黑色); / /黑盒
/ * imagestring($图像、字体X美元,美元,美元,美元,美元,COL)
在S字符串图像中,颜色为x,y(XY是左上角的一个字符串),
图像的左上角的是(0,0)如果字体都是1, 2, 3,4, 5是使用内置的字体。
什么是绘画 /四个数字的方法,让四个字符的位置是随机的。
思瑞克斯美元=兰特(5,10);
($ i = 0;$ i $;$;$ + +){
这些美元=兰特(1,6);
imagestring($ IMG,5美元美元,瑞克斯,环索,substr($代码,我,1),为黑色);
思瑞克斯美元=兰特(8、12);
/ /瑞克斯是一个坐标,这就要求以前的坐标被添加以确保没有重叠。无论纵坐标
}
/ / substr()函数返回字符串的一部分,substr(字符串,起始、长度),被截获的字符串的开始位置,长度的长度截取。
很好的生成号,下面对验证码区域有一定的干扰,防止某些工具能自动识别。
1。方法:给出大量背景噪声。
/ / imagesetpixel(合图像,X,Y元,美元的颜色),在图像的图像,使用颜色的X和Y坐标,(图像的左上角的是0,0)。
($ i = 0;$ i < 80;$ + +){
imagesetpixel($ IMG,兰特(0,$ W),伦德(0,$ H),为黑色); / /点分布在背景。
}
2。方法二:画几条虚线
样式=数组(黑色$,灰色);
设定画线的风格($ IMG,$式);
/ /设定画线的风格($美元,形象,风格)设置线条画的风格,像素阵列
$ Y1 =兰特(0,$ H);
$ Y2 =兰特(0,$ H);
$ Y3 =兰特(0,$ H);
$ Y4 =兰特(0,$ H);
imageline($ IMG,0美元美元,Y1,Y2,美元,img_color_styled);
imageline($ IMG,0美元美元,Y3,Y4 W美元,img_color_styled);
imagepng($ IMG);
销毁一图像($ IMG);
}
>
2。数字操作验证码:
< PHP
getvalidate(至);
功能getvalidate($ W $ H){
$ img =画面欣赏($ W $ H);
灰色= imagecolorallocate美元(美元IMG,255255255);
黑imagecolorallocate美元(美元IMG,兰德(0200)、(0200)、兰特兰特(0200));
红色= imagecolorallocate美元(美元IMG,255, 0, 0);
白色= imagecolorallocate美元(美元IMG,255, 255, 255);
绿色= imagecolorallocate美元(美元IMG,0, 255, 0);
蓝色= imagecolorallocate美元(美元IMG,0, 0, 255);
Imagefilledrectangle(0, 0, 100美元,30美元的数据,黑色);
($ i = 0;$ i < 80;$ + +){
imagesetpixel($ IMG,兰特(0,$ W),伦德(0,$ H),为灰色);
}
$ num1 =兰特(1,99);
$ num2 =兰特(1,99);
imagestring($ IMG、5, 5、伦德(1,10)美元美元,num1,红色);
imagestring($ IMG,5、30、伦德(1,10),(),白色getRand美元);
imagestring($ IMG,5,45、伦德(1,10),$ num2,为绿色);
imagestring($ IMG,5,65、伦德(1,10),=
imagestring($ IMG,5、80、伦德(1,10),
页眉(内容类型:图像);
imagepng($ IMG);
销毁一图像($ IMG);
}
函数getRand(){
为代码=兰特(0,1);
开关($代码){
案例0:
返回+;
打破;
案例1:
返回;
打破;
违约:
#代码…
打破;
}
}
>
希望本文能对大家的PHP程序设计有所帮助。