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

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

高洛峰
Lepaskan: 2016-10-10 10:23:16
asal
1286 orang telah melayarinya

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

基本思路:

     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);
// 释放图像资源
Salin selepas log masuk


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan