ホームページ  >  記事  >  类库下载  >  PHP: gd ライブラリを使用してイメージを生成し、ランダムな検証コードを実装する

PHP: gd ライブラリを使用してイメージを生成し、ランダムな検証コードを実装する

高洛峰
高洛峰オリジナル
2016-10-10 10:23:161207ブラウズ

注: ここで実装されている確認コードの桁数と必要な文字列は、いくつかの基本コードをコメントにしました。私の注釈があれば、誰でも簡単に理解できるはずです。

基本的なアイデア:

1. mt_rand() を使用して数値をランダムに生成し、取得する文字列を決定し、文字列を結合します (生成された検証コードは少し混雑しすぎていると思います。文字列の真ん中) 、ランダム検証コードを実装します

注: rand() の代わりに mt_rand() を使用することをお勧めします。前者の方が効率的です

2. gd ライブラリを使用して画像を生成し、ランダムに書き込みます画像出力に文字列を追加します。

効果:

PHP: gd ライブラリを使用してイメージを生成し、ランダムな検証コードを実装するPHP: gd ライブラリを使用してイメージを生成し、ランダムな検証コードを実装するPHP: gd ライブラリを使用してイメージを生成し、ランダムな検証コードを実装する

更新されるたびに、ランダムな検証が生成されます。後でランダムコードの実装方法を追加し、画像をクリックして再度更新する場合があります

コード:

<?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);
// 释放图像资源


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

関連記事

続きを見る