首页 > php代码 > php 生成中文验证码程序

php 生成中文验证码程序

今天无意中想起写验证码数字加汉字,下面是代码比较容易没什么好说

先来看看效果图吧.

还不错吧?

<?php
    Header("Content-type: image/PNG");//生成图片的类型
    $str = "的一是在了不和有大这主中人蚕亿矩";//随便回的你可以自己增加
    $Width = 240;//图片高度
    $imgHeight = 40;//图片宽度
    $C_img = imagecreate($Width,$imgHeight);
    $bgColor = ImageColorAllocate($C_img,255,255,255);
    $f_font = "heiti.ttf";//这里可以选择其它的字体
    $white=imagecolorallocate($C_img,234,185,95);
    imagearc($C_img, 150, 8, 20, 20, 75, 170, $white);
    imagearc($C_img, 180, 7,50, 30, 75, 175, $white);
    imageline($C_img,20,20,180,30,$white);
    imageline($C_img,20,18,170,50,$white);
    imageline($C_img,25,50,80,50,$white);
    $noise_num = 800;//杂点的数据
    $line_num = 20;//线条的数量
    imagecolorallocate($C_img,0xff,0xff,0xff);
    $rectangle_color=imagecolorallocate($C_img,0xAA,0xAA,0xAA);
    $noise_color=imagecolorallocate($C_img,0x00,0x00,0x00);
    $font_color=imagecolorallocate($C_img,0x00,0x00,0x00);
    $line_color=imagecolorallocate($C_img,0x00,0x00,0x00);
    for($i=0;$i<$noise_num;$i++){
     imagesetpixel($C_img,mt_rand(0,$Width),mt_rand(0,$imgHeight),$noise_color);
    }
    for($i=0;$i<$line_num;$i++){
     imageline($C_img,mt_rand(0,$Width),mt_rand(0,$imgHeight),mt_rand(0,$Width),mt_rand(0,$imgHeight),$line_color);
    }
    $randnum=rand(0,strlen($str)-4);
    if($randnum%2)$randnum+=1;
    $str = substr($str,$randnum,8);
    $str = iconv("GB2312","UTF-8",$str).rand(0,1000);//转换编码
    ImageTTFText($C_img, 20, 0, 16, 30, $font_color, $f_font, $str);
    ImagePNG($C_img);
    ImageDestroy($C_img);

注明:转载请说明原处www.phprm.com


文章网址:http://www.phprm.com/code/944e542d1b2456e90d861f5615f16792.html

随意转载^^但请附上教程地址。

标签:none

发表留言