Home  >  Article  >  php教程  >  php 中文与英文验证码程序代码

php 中文与英文验证码程序代码

WBOY
WBOYOriginal
2016-06-13 11:23:281168browse

php教程 中文与英文验证码程序代码

//英文验证码相对简单,不要作hex处理,直接用色彩值就OK了。如果
session_start();
function rand_create()
{
    //通知浏览器将要输出PNG图片
    Header("Content-type: image/PNG");
    //准备好随机数发生器种子 
    srand((double)microtime()*1000000);
    //准备图片的相关参数  
    $im = imagecreate(62,22);
    $black = ImageColorAllocate($im, 0,0,0);  //RGB黑色标识符
    $white = ImageColorAllocate($im, 255,255,255); //RGB白色标识符
    $gray = ImageColorAllocate($im, 200,200,200); //RGB灰色标识符
    //开始作图    
    imagefill($im,0,0,$gray);
    while(($randval=rand()%100000)        $_SESSION["Auth_code"] = $randval;
        //将四位整数验证码绘入图片 
        imagestring($im, 5, 10, 3, $randval, $black);
    }
    //加入干扰象素   
    for($i=0;$i        $randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
        imagesetpixel($im, rand()%70 , rand()%30 , $randcolor);
    }
    //输出验证图片
    ImagePNG($im);
    //销毁图像标识符
    ImageDestroy($im);
}
rand_create();

//调用方法php 中文与英文验证码程序代码

//中文验证码程序如下

Header("Content-type: image/PNG");
$str = "这里设置一中文如果中国WEB第一站www.bkjia.com";
$imagesW = 140;
$imagesH = 40;
//
$Auimg = imagecreate($imagesW,$imagesH);
$bgc = ImageColorAllocate($Auimg,255,255,255);
$font = "heiti.ttf";//这里设置字体,你可以随便下载一款字体哦。
$white=imagecolorallocate($Auimg,234,185,95);
imagearc($Auimg, 150, 8, 20, 20, 75, 170, $white);
imagearc($Auimg, 180, 7,50, 30, 75, 175, $white);
imageline($Auimg,20,20,180,30,$white);
imageline($Auimg,20,18,170,50,$white);
imageline($Auimg,25,50,80,50,$white);
$noise_num = 800;
$line_num = 20;
imagecolorallocate($Auimg,0xff,0xff,0xff);
$rectangle_color=imagecolorallocate($Auimg,0xAA,0xAA,0xAA);
$noise_color=imagecolorallocate($Auimg,0x00,0x00,0x00);
$font_color=imagecolorallocate($Auimg,0x00,0x00,0x00);
$line_color=imagecolorallocate($Auimg,0x00,0x00,0x00);
for($i=0;$i imagesetpixel($Auimg,mt_rand(0,$imagesW),mt_rand(0,$imagesH),$noise_color);
}
for($i=0;$i imageline($Auimg,mt_rand(0,$imagesW),mt_rand(0,$imagesH),mt_rand(0,$imagesW),mt_rand(0,$imagesH),$line_color);
}
$mtRnd=rand(0,strlen($str)-4);
if($mtRnd%2)$mtRnd+=1;
$str = substr($str,$mtRnd,8);
$str = iconv("GB2312","UTF-8",$str);
ImageTTFText($Auimg, 20, 0, 16, 30, $font_color, $font, $str);
ImagePNG($Auimg);
ImageDestroy($Auimg);
/*
 共同点就是验证码都借助于其它容器来保存如session,cookie等,否则就没有验证的意义了
 本文章由www.bkjia.com整,转载请注明来源谢谢合作。


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn