Classe PHP pour générer des chaînes aléatoires et des codes de vérification

怪我咯
Libérer: 2023-03-12 15:40:01
original
1221 Les gens l'ont consulté

Cet article présente principalement des exemples PHP de classes qui génèrent des chaînes aléatoires et des codes de vérification Les amis dans le besoin peuvent se référer à

Il y en a beaucoup en ligne. Il y en a peu. des codes et des articles sur les nombres aléatoires PHP et les codes de vérification réellement applicables.

Faites-en un vous-même.

Commençons cette section du tutoriel php L'implémentation du code suivant consiste principalement à distinguer l'un get_code() et l'autre create_check_image(). . session() Lors de l'obtention du code de vérification, get_code() est ok. À propos, lorsque vous utilisez session, vous devez mettre session_star() au début.

Le code est le suivant :

<?php
class RandCheckCode
{
        /*函数名称:get_code()
        *作用:取得随机字符串
        * 参数:
        1、(int)$length = 32 #随机字符长度
        2、(int)$mode = 0    #随机字符类型,
        0为大小写英文和数字,1为数字,2为小写字母,3为大写字母,
        4为大小写字母,5为大写字母和数字,6为小写字母和数字
        *返回:取得的字符串
        */
        function get_code($length=32,$mode=0)//获取随机验证码函数
        {
                switch ($mode)
                {
                        case &#39;1&#39;:
                                $str=&#39;123456789&#39;;
                                break;
                        case &#39;2&#39;:
                                $str=&#39;abcdefghijklmnopqrstuvwxyz&#39;;
                                break;
                        case &#39;3&#39;:
                                $str=&#39;ABCDEFGHIJKLMNOPQRSTUVWXYZ&#39;;
                                break;
                        case &#39;4&#39;:
                                $str=&#39;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz&#39;;
                                break;
                        case &#39;5&#39;:
                                $str=&#39;ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890&#39;;
                                break;
                        case &#39;6&#39;:
                                $str=&#39;abcdefghijklmnopqrstuvwxyz1234567890&#39;;
                                break;
                        default:
                                $str=&#39;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890&#39;;
                                break;
                }
                $checkstr=&#39;&#39;;
                $len=strlen($str)-1;
                for ($i=0;$i<$length;$i++)
                {
                        //$num=rand(0,$len);//产生一个0到$len之间的随机数
                        $num=mt_rand(0,$len);//产生一个0到$len之间的随机数
                        $checkstr.=$str[$num];

                       
                }
                return $checkstr;
        }

/**     函数名称:create_check_image()
        函数作用:产生一个校验码的图片
        参    数:$checkcode:校验码字符串
        返 回 值:返回该图片
*/
        function create_check_image($checkcode)//产生一个
        {
                $im=imagecreate(65,22);//产生一个图片
                $black=imagecolorallocate($im,0,0,0);//背景颜色
                $white=imagecolorallocate($im,255,255,255);//前景颜色
                $gray=imagecolorallocate($im,200,200,200);
                imagefill($im,30,30,$gray);//在$im图像的坐标30,30(图像左上角为0,0)处用$gray 颜色执行区域填充(即与30,30点颜色相同且相邻的点都会被填充)

                imagestring($im,5,8,3,$checkcode,$white);//用$white颜色将字符串$checkcode画到$im 所代表的图像的8,3坐标处(这是字符串左上角坐标,整幅图像的左上角为0,0),5是字体大小, 字体只能是1,2,3,4或5,使用内置字体
                for ($i=0;$i<120;$i++)
                {
                        $randcolor=imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
                        imagesetpixel($im,rand()%70,rand()%30,$randcolor);//在$im图象上用$randcolor颜色在(rand()%70,rand()%30)坐标(图像左上角为0,0)上画一个点
                }
                header("Content-type:image/png");
                imagepng($im);//以PNG格式将图像输出到浏览器或文件
                imagedestroy($im);//销毁图像$im
        }
}
/*
$randcode=new RandCheckCode();
$checkstring=$randcode->get_code(5,7);
$image=$randcode->create_check_image($checkstring);
echo $image;
*/
?>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal