Maison php教程 php手册 php学习笔记:利用gd库生成图片,并实现随机验证码

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

Sep 14, 2016 am 09:24 AM

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

基本思路:

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

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

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

效果:

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

 

代码:

 

<span style="font-size: 18px;"><span style="color: #000000;">php
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 创建画布</span>
<span style="color: #800080;">$width</span> = 120;   <span style="color: #008000;">//</span><span style="color: #008000;"> 规定画布的宽高</span>
<span style="color: #800080;">$height</span> = 45<span style="color: #000000;">;
</span><span style="color: #800080;">$image</span> = imagecreatetruecolor(<span style="color: #800080;">$width</span>, <span style="color: #800080;">$height</span>);  <span style="color: #008000;">//</span><span style="color: #008000;"> 创建一幅真彩色图像
// 添加一些即将用到的颜色</span>
<span style="color: #800080;">$white</span> = imagecolorallocate(<span style="color: #800080;">$image</span>, 0xf2, 0xec, 0xe0<span style="color: #000000;">);
</span><span style="color: #800080;">$orange</span> = imagecolorallocate(<span style="color: #800080;">$image</span>, 0xff, 0xa5, 0x4c<span style="color: #000000;">);
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 对画布背景填充颜色</span>
imagefill(<span style="color: #800080;">$image</span>, 0, 0, <span style="color: #800080;">$white</span><span style="color: #000000;">);

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

 

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)