Heim  >  Artikel  >  类库下载  >  php:利用gd库生成图片,并实现随机验证码

php:利用gd库生成图片,并实现随机验证码

高洛峰
高洛峰Original
2016-10-10 10:23:161157Durchsuche

说明:一些基本的代码我都进行了注释,这里实现的验证码位数、需要用的字符串都可以再设置。有我的注释,大家应该很容易能看得懂。

基本思路:

     1.用mt_rand()随机生成数字确定需要获取的字符串,对字符串进行拼接(觉得生成的验证码觉得有点太挤,大家可以再字符串中间拼接个空格键),实现随机验证码;

     备注:建议大家用mt_rand(),而不是rand(),前者效率更高

     2.利用gd库生成图片,把随机字符串写到图片输出。

效果:

1.jpg1.jpg1.jpg

每次刷新,都生成一个随机验证,后期我可能还会补充怎么实现随机码点击图片就再次更新

 

代码:

<?php
// 创建画布
$width = 120;   // 规定画布的宽高
$height = 45;
$image = imagecreatetruecolor($width, $height);  // 创建一幅真彩色图像
// 添加一些即将用到的颜色
$white = imagecolorallocate($image, 0xf2, 0xec, 0xe0);
$orange = imagecolorallocate($image, 0xff, 0xa5, 0x4c);
// 对画布背景填充颜色
imagefill($image, 0, 0, $white);

//mt_rand  获取随机数 mt_rand(min, max);
    function  str_rand(){
        $str="abcdefghijkmnpqrstuvwxyz0123456789ABCDEFGHIGKLMNPQRSTUVWXYZ";
        $rand="";
        for($i=0; $i<5; $i++){//获取5个随机的字符串
            $rand .= $str[mt_rand(0, strlen($str)-1)];  //如:随机数为30  则:$str[30]
        }
        return $rand;
    }
$verifyCode=str_rand();
// 画一串字符串在画布上
imagestring($image, 10, 10, 10, "$verifyCode", $orange);
// 通知浏览器输出的是图像(png类型)
header(&#39;Content-Type: image/png&#39;);
// 输出到浏览器
imagepng($image);
// 释放图像资源


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

In Verbindung stehende Artikel

Mehr sehen