码迷,mamicode.com
首页 > Web开发 > 详细

简单漂亮的php验证码函数

时间:2017-08-13 10:00:34      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:type   hex   class   color   nts   oca   content   style   create   

/* 
     *说明:函数功能是生成验证码
     * 参数说明:输入 长度,宽度,高度
     */
    function vcode($_code_length = 4, $_width = 75, $_height = 25){
        
        $_font=dirname(__FILE__)./font/Elephant.ttf;//注意字体路径要写对,否则显示不了图片
        
        $_fontsize=$_height/1.8;
        $_nmsg="";
        for($i=0;$i<$_code_length;$i++){
            $_nmsg .= dechex(mt_rand(0,15));
        }
        if(!isset($_SESSION)){
            session_start();
        }
        
        $_SESSION["vcode"] = $_nmsg;

        $_img = imagecreatetruecolor($_width, $_height);

        $_white = imagecolorallocate($_img, 250, 250, 250);

        imagefill($_img, 0, 0, $_white);

        $_gray = imagecolorallocate($_img, 196, 196, 196);

        imagerectangle($_img, 0, 0, $_width-1, $_height-1, $_gray);

        for ($i=0; $i < 6; $i++) { 
            $_md_color = imagecolorallocate($_img, mt_rand(200,255), mt_rand(200,255), mt_rand(200,255));
            imageline($_img, mt_rand(0,$_width), mt_rand(0, $_height),mt_rand(0,$_width), mt_rand(0, $_height), $_md_color);
        }

        for ($i=0; $i < 50; $i++) { 
            $_md_color = imagecolorallocate($_img, mt_rand(200,255), mt_rand(200,255), mt_rand(200,255));
            imagestring($_img, 1, mt_rand(1,$_width-5), mt_rand(1, $_height-5), "*", $_md_color);
        }

        for ($i=0; $i < $_code_length ; $i++) { 
            $_md_color = imagecolorallocate($_img, mt_rand(0,102), mt_rand(0,102), mt_rand(0,102));
            //imagestring($_img, 5, $i * $_width/$_code_length+ mt_rand(1, 10), mt_rand(1, $_height/2), $_SESSION["vcode"][$i], $_md_color);
            imagettftext($_img,$_fontsize,mt_rand(-20,20),$_fontsize*$i+mt_rand(1,5),$_height / 1.4,$_md_color,$_font,$_SESSION["vcode"][$i]);
        }

        header("Content-Type:image/png");

        imagepng($_img);

        imagedestroy($_img);
    }

需要一个字体文件 可以百度下载一个

简单漂亮的php验证码函数

标签:type   hex   class   color   nts   oca   content   style   create   

原文地址:http://www.cnblogs.com/wordblog/p/7352239.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!