• 技术文章 >后端开发 >php教程

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

    2016-07-20 11:07:29原创369
    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)<10000);{
    $_SESSION["Auth_code"] = $randval;
    //将四位整数验证码绘入图片
    imagestring($im, 5, 10, 3, $randval, $black);
    }
    //加入干扰象素
    for($i=0;$i<200;$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();

    //调用方法

    //中文验证码程序如下

    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<$noise_num;$i++){
    imagesetpixel($Auimg,mt_rand(0,$imagesW),mt_rand(0,$imagesH),$noise_color);
    }
    for($i=0;$i<$line_num;$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整,转载请注明来源谢谢合作。


    www.bkjia.comtruehttp://www.bkjia.com/PHPjc/444954.htmlTechArticlephp教程 中文与英文验证码程序代码 //英文验证码相对简单,不要作hex处理,直接用色彩值就OK了。如果 session_start(); function rand_create() { //通...

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 中文 英文 验证 程序 代码 php 教程 中文 英文 验证 程序 代码 相对 简单 不要
    上一篇:本人原创php通用翻页类,支持上*页和下*页.._PHP教程 下一篇:php创建目录,删除文件夹及查找不合法的目录并删除_PHP教程
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• PHP和MySQL入门(4)• php模拟数据库常用操作效果,php模拟数据库_PHP教程• ThinkPHP Mobile使用方法简明教程_PHP教程• PHP反射使用实例和PHP反射API的中文说明_PHP教程• php操作MongoDB基础教程(连接、新增、修改、删除、查询)_PHP教程
    1/1

    PHP中文网