首页 php教程 php手册 php生成动态验证码gif图片

php生成动态验证码gif图片

Jun 06, 2016 pm 07:41 PM
php生成验证码 php生成验证码图片

这篇文章主要介绍了php生成动态验证码gif图片的相关资料,需要的朋友可以参考下

这是一个通过php生成的动态验证码图片的示例,重点是可以运行哦!下面先发下效果图:

php生成动态验证码gif图片

下面是php生成动态验证码需要用到的相关类和函数。

0){// 屏蔽第一帧 $top=0; for($k=0;$kGetAnimation(); } /** *GIFEncoder类 **/ Class GIFEncoder{ var $GIF="GIF89a"; /* GIF header 6 bytes */ var $VER="GIFEncoder V2.06"; /* Encoder version */ var $BUF=Array(); var $LOP=0; var $DIS=2; var $COL=-1; var $IMG=-1; var $ERR=Array( 'ERR00'=>"Does not supported function for only one image!", 'ERR01'=>"Source is not a GIF image!", 'ERR02'=>"Unintelligible flag ", 'ERR03'=>"Could not make animation from animated GIF source", ); function GIFEncoder($GIF_src,$GIF_dly=100,$GIF_lop=0,$GIF_dis=0, $GIF_red=0,$GIF_grn=0,$GIF_blu=0,$GIF_mod='bin'){ if(!is_array($GIF_src)&&!is_array($GIF_tim)){ printf("%s: %s",$this->VER,$this->ERR['ERR00']); exit(0); } $this->LOP=($GIF_lop>-1)?$GIF_lop:0; $this->DIS=($GIF_dis>-1)?(($GIF_disCOL=($GIF_red>-1&&$GIF_grn>-1&&$GIF_blu>-1)?($GIF_red |($GIF_grnBUF[]=fread(fopen($GIF_src [$i],"rb"),filesize($GIF_src [$i])); }elseif(strToLower($GIF_mod)=="bin"){ $this->BUF [ ]=$GIF_src [ $i ]; }else{ printf("%s: %s(%s)!",$this->VER,$this->ERR [ 'ERR02' ],$GIF_mod); exit(0); } if(substr($this->BUF[$i],0,6)!="GIF87a"&&substr($this->BUF [$i],0,6)!="GIF89a"){ printf("%s: %d %s",$this->VER,$i,$this->ERR ['ERR01']); exit(0); } for($j=(13+3*(2BUF[$i]{10})&0x07))),$k=TRUE;$k;$j++){ switch($this->BUF [$i]{$j}){ case "!": if((substr($this->BUF[$i],($j+3),8))=="NETSCAPE"){ printf("%s: %s(%s source)!",$this->VER,$this->ERR ['ERR03'],($i+1)); exit(0); } break; case ";": $k=FALSE; break; } } } GIFEncoder::GIFAddHeader(); for($i=0,$count_buf=count($this->BUF);$iBUF[0]{10})&0x80){ $cmap=3*(2BUF [0]{10})&0x07)); $this->GIF.=substr($this->BUF [0],6,7); $this->GIF.=substr($this->BUF [0],13,$cmap); $this->GIF.="!\377\13NETSCAPE2.0\3\1".GIFEncoder::GIFWord($this->LOP)."\0"; } } function GIFAddFrames($i,$d){ $Locals_str=13+3*(2 BUF[$i]{10})&0x07)); $Locals_end=strlen($this->BUF[$i])-$Locals_str-1; $Locals_tmp=substr($this->BUF[$i],$Locals_str,$Locals_end); $Global_len=2BUF [0]{10})&0x07); $Locals_len=2BUF[$i]{10})&0x07); $Global_rgb=substr($this->BUF[0],13,3*(2BUF[0]{10})&0x07))); $Locals_rgb=substr($this->BUF[$i],13,3*(2BUF[$i]{10})&0x07))); $Locals_ext="!\xF9\x04".chr(($this->DIS>0)&0xFF).chr(($d>>8)&0xFF)."\x0\x0"; if($this->COL>-1&&ord($this->BUF[$i]{10})&0x80){ for($j=0;$jBUF[$i]{10})&0x07));$j++){ if(ord($Locals_rgb{3*$j+0})==($this->COL>> 0)&0xFF&&ord($Locals_rgb{3*$j+1})==($this->COL>> 8)&0xFF&&ord($Locals_rgb{3*$j+2})==($this->COL>>16)&0xFF){ $Locals_ext="!\xF9\x04".chr(($this->DIS>0)&0xFF).chr(($d>>8)&0xFF).chr($j)."\x0"; break; } } } switch($Locals_tmp{0}){ case "!": $Locals_img=substr($Locals_tmp,8,10); $Locals_tmp=substr($Locals_tmp,18,strlen($Locals_tmp)-18); break; case ",": $Locals_img=substr($Locals_tmp,0,10); $Locals_tmp=substr($Locals_tmp,10,strlen($Locals_tmp)-10); break; } if(ord($this->BUF[$i]{10})&0x80&&$this->IMG>-1){ if($Global_len==$Locals_len){ if(GIFEncoder::GIFBlockCompare($Global_rgb,$Locals_rgb,$Global_len)){ $this->GIF.=($Locals_ext.$Locals_img.$Locals_tmp); }else{ $byte=ord($Locals_img{9}); $byte|=0x80; $byte&=0xF8; $byte|=(ord($this->BUF [0]{10})&0x07); $Locals_img{9}=chr($byte); $this->GIF.=($Locals_ext.$Locals_img.$Locals_rgb.$Locals_tmp); } }else{ $byte=ord($Locals_img{9}); $byte|=0x80; $byte&=0xF8; $byte|=(ord($this->BUF[$i]{10})&0x07); $Locals_img {9}=chr($byte); $this->GIF.=($Locals_ext.$Locals_img.$Locals_rgb.$Locals_tmp); } }else{ $this->GIF.=($Locals_ext.$Locals_img.$Locals_tmp); } $this->IMG=1; } function GIFAddFooter(){ $this->GIF.=";"; } function GIFBlockCompare($GlobalBlock,$LocalBlock,$Len){ for($i=0;$i>8)&0xFF)); } function GetAnimation(){ return($this->GIF); } }

php生成动态验证码用法示例:

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)