PHP自定义大小验证码的方法详解_php技巧

WBOY
发布: 2016-05-17 09:02:36
原创
837 人浏览过
复制代码 代码如下:

function vCode($num=4,$size=20, $width=0,$height=0){
        !$width && $width = $num*$size*4/5 5;
        !$height && $height = $size 10;
        // 去掉了 0 1 O l 等
            $str = "23456789abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVW";
            $code = '';
            for ($i=0; $i<$num; $i ){
                    $code.= $str[mt_rand(0, strlen($str)-1)];
            }
            // 画图像
            $im = imagecreatetruecolor($width,$height);
            // 定义要用到的颜色
            $back_color = imagecolorallocate($im, 235, 236, 237);
            $boer_color = imagecolorallocate($im, 118, 151, 199);
            $text_color = imagecolorallocate($im, mt_rand(0,200), mt_rand(0,120), mt_rand(0,120));

            // 画背景
        imagefilledrectangle($im,0,0,$width,$height,$back_color);
            // 画边框
            imagerectangle($im,0,0,$width-1,$height-1,$boer_color);
            // 画干扰线
            for($i=0;$i<5;$i ){
                    $font_color = imagecolorallocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));
                imagearc($im,mt_rand(-$width,$width),mt_rand(-$height,$height),mt_rand(30,$width*2),mt_rand(20,$height*2),mt_rand(0,360),mt_rand(0,360),$font_color);
                }
        // 画干扰点
        for($i=0;$i<50;$i ){
                $font_color = imagecolorallocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));
                imagesetpixel($im,mt_rand(0,$width),mt_rand(0,$height),$font_color);
        }
        // 画验证码
        @imagefttext($im, $size , 0, 5, $size 3, $text_color, 'c://WINDOWS//Fonts//simsun.ttc',$code);
        header("Cache-Control: max-age=1, s-maxage=1, no-cache, must-revalidate");
        header("Content-type: image/png");
        imagepng($im);
        imagedestroy($im);
}
?>

函数描述及例子:
// 4个字符,大小为20
vCode(4,20);
?>
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!