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

如何用PHP生成扭曲和旋转的验证代码

如何用PHP生成扭曲和旋转的验证代码
复制代码代码如下所示:
< PHP
功能make_rand($长度= 32){ / /验证码文本生成函数
$str =abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz1234567890 ;
$结果;
($ i = 0;$ i $ $长度;$ + +){
Num { } =美元美元我兰德(0,61);
结果;
}
返回$结果;
}
$码= make_rand(5);
im_x = 160美元;
im_y = 32美元;
功能make_crand($长度=5){
$=;
($ i = 0;$ i $ $长度;$ + +){
为字符串= CHR(RAND(0xb0,0xf7)(。CHR)兰德(0xa1,0xfe));
}
返回$字符串;
}
功能getauthimage(文本im_x = 230美元,美元,美元im_y = 32){
$我=新建一个真彩色图像(im_x美元,美元im_y);
text_c美元= imagecolorallocate(合我,mt_rand(0100),mt_rand(0100),mt_rand(0100));
tmpc0美元= mt_rand(100255);
tmpc1美元= mt_rand(100255);
(100255)mt_rand TmPc2*美元=;
buttum_c美元= imagecolorallocate(合我,tmpc0美元美元美元,tmpc1,TmPc2*);
imagefill(合我,16, 13,buttum_c美元);
返回文本;
美元: / 字体= c /窗/ / / /字体是TTC的;
/ /回声strlen($文本);
为文本= iconv(GB2312
/ /回声mb_strlen(合文本,UTF-8);
为($我= 0;$我< mb_strlen($文本);$我+ +)
{
TMP = mb_substr美元(美元1美元的文字,我,,UTF-8);
$array =阵列(-1,0,1);
P = array_rand(数组);
美元=数组{ $ P } * mt_rand(9); / /角
美元= 20;
(我imagettftext美元,美元,10美元的规模,我* * + $美元2,25大小,text_c美元美元美元,字体,TMP);
}
distortion_im美元=新建一个真彩色图像(im_x美元,美元im_y);
imagefill(distortion_im美元,16, 13美元,buttum_c);
为($我= 0;美元美元美元我<< im_x;i++){
(J = 0;对美元美元美元,<< im_y;j++){
RGB = imagecolorat美元(美元美元美元我,I,J);
如果((int)($我+ 20 + sin(J / $ im_y×2×m_pi)* 10)= 0){
imagesetpixel(distortion_im美元,(int)($我+ 10 + sin(J / $ im_y×2×m_pi-m_pi×0.5)×3美元美元),J,RGB);
}
}
}
添加干扰像素;
$ = 600;干扰像素的数量
($ i = 0;$ i <计数;$ + +){
randcolor = imagecolorallocate美元(美元distortion_im,mt_rand(0255),mt_rand(0255),mt_rand(0255));
imagesetpixel(distortion_im美元,mt_rand()%()% mt_rand im_x美元,美元,美元im_y,randcolor);
}
line_c = 5美元;
/ / imageline
为($我= 0;美元美元美元我<< line_c;i++){
颜色= imagecolorallocate美元(美元distortion_im,17, 158, 20);
左撇子= mt_rand美元(1美元im_x-1);
好的mt_rand美元=(1,im_y-1美元);
imageline(distortion_im美元,0美元,左撇子,imagesx(distortion_im美元美元美元),右手的,颜色);
}
页眉(内容类型:图像);
以PNG格式输出到浏览器或文件中;
/ / imagepng(为我);
imagepng($ distortion_im);
/ /销毁一图像,结合图像的内存释放;
销毁一图像($ distortion_im);
销毁一图像(为我);
}
>

示例如下:
复制代码代码如下所示:
< PHP
getauthimage(make_crand(5));
>

相关文章

对mtx.exe-甲的作用是什么

对mtx.exe-甲的作用是什么

作用,电脑软件,mtx,exe,点评:mtx.exe是微软微软处理的服务支持您的计算机上的其他应用程序 进程文件:MTX或mtx.exe 过程名称:微软事务服务器(MTS) 过程类别:安全风险的过程 英文描述: mtx.exe是微软事务服务器(MTS)的一部分,MTS,它也被称为以下三个…

Fedora9没有声音的解决方案

Fedora9没有声音的解决方案

解决方案,声音,电脑软件,点评:uff1a Fedora 9系统听不到声音,怎么能不好,只有求助,结果发现了一种方法。 方法是: 打开声音的第一个选项,检查环绕声,然后打开环绕声开关来听到声音。…

什么过程mcupdate过程查询mcupdate

什么过程mcupdate过程查询mcupdate

查询,过程,电脑软件,mcupdate,exe,点评:mcupdate.exe是迈克菲网络安全套装相关程序将连接到服务器的McAfee病毒特征库升级 进程文件:mcupdate或mcupdate.exe 进程名称:mcupdate 过程类别:安全风险的过程 英文描述: mcupdate.exe是McAfee互联网…

什么是文件的icwconn2过程可以由ic

什么是文件的icwconn2过程可以由ic

进程,删除,文件,过程,电脑软件,点评:icwconn2.exe是微软连接向导程序,用于帮助用户连接到互联网 进程文件:icwconn2或icwconn2.exe 过程名称:Internet连接向导 过程类别:安全风险的过程 英文描述: icwconn2.exe是一部分的连接向导程序,用于帮助…

当游戏调整时,游戏自动退出游戏。

当游戏调整时,游戏自动退出游戏。

退出,调整,游戏,电脑软件,问题: 当你玩火线时,开始认为它是偶然的,再试几次,同样的退出游戏的现象。这是游戏本身的问题,还是计算机系统的问题 答案uff1a 在这种情况下,建议重新启动计算机,然后清理浏览器的缓存。如果问题仍然存在,可能会有一个…

PHP第二部分的数据类型的字符串类

PHP第二部分的数据类型的字符串类

字符串,类型,数据类型,第二部分,电脑软件,PHP中的字符串可以用以下4种方式定义: 单引号 双引号 文本的语法结构 nowdoc语法结构(自PHP 5.3.0) 单引号 定义字符串最简单的方法是用一个引号(标点符号)包围它。 如果你想输出一个单引号,你需要添…

48基于Win2000的计算机使用

48基于Win2000的计算机使用

电脑软件,你对这个视频有一个坏的评论。谢谢你提供反馈! 你顶这个视频。我们将改善您的推荐accordingly.win2003故障 电脑维修 该视频已添加到相应的播放列表。 视频已添加到观看播放列表稍后。 视频采集成功。 操作需要登录,请登录或重…

什么是过程的wdfmgr.exewdfmgr过程

什么是过程的wdfmgr.exewdfmgr过程

过程,电脑软件,wdfmgr,exewdfmgr,点评:该wdfmgr.exe过程相关的程序为微软microsoftwindowsmediaplayer10球员。其效果是减少兼容性问题,这是不是一个系统的程序。如果你需要关闭的过程中,你可以直接关闭它。它不会造成计算机系统的影响 进程…

PHP获取本地IP代码

PHP获取本地IP代码

代码,电脑软件,PHP,IP,复制代码代码如下所示: get_client_ip()函数 { 如果($ _server { 'remote_addr ' }){ 美元美元'remote_addr_server CIP = { }; } elseif(getenv(remote_addr )){ $ CIP = getenv(remote_addr ); } elseif(getenv(http_client_ip…

MySQL语句使用实例

MySQL语句使用实例

语句,实例,电脑软件,MySQL,主键 tablename表添加new_field_id int(5)符号默认0不空anto_increment。 添加新列 MySQL > tablename表添加字段名FieldType 如: 修改表添加d时间戳; 修改表信息添加字段不为空的默认0前; 删除列 MySQL >修改表tabl…

摄像头无法使用iPad提示没有桌面端

摄像头无法使用iPad提示没有桌面端

桌面,提示,摄像头,程序,电脑软件,问题: 上一次看到手机改变无线摄像机下载电脑报介绍和安装摄像头的应用,但是PC客户端是无法连接。 我使用电脑是win7系统,和iPad2使用ios5.1系统。客户已经运行,也显示IP地址和端口,打开应用程序在iPad2,自动搜…

QQLive使用频繁的断开现象的解决方

QQLive使用频繁的断开现象的解决方

解决方案,断开,频繁,现象,电脑软件,当QQLive使用一段时间后,它会经常发生,而且很容易解决。 请进入QQLive设置功能,选择网络设置} {在设置功能,打开调制解调器的连接数控制,选择{是},然后选择它,然后关闭并重新打开QQLIVE。 U3000 U3000 如果网…