程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php學習筆記:利用gd庫生成圖片,並實現隨機驗證碼,

php學習筆記:利用gd庫生成圖片,並實現隨機驗證碼,

編輯:關於PHP編程

php學習筆記:利用gd庫生成圖片,並實現隨機驗證碼,


說明:一些基本的代碼我都進行了注釋,這裡實現的驗證碼位數、需要用的字符串都可以再設置。有我的注釋,大家應該很容易能看得懂。

基本思路:

     1.用mt_rand()隨機生成數字確定需要獲取的字符串,對字符串進行拼接(覺得生成的驗證碼覺得有點太擠,大家可以再字符串中間拼接個空格鍵),實現隨機驗證碼;

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

     2.利用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('Content-Type: image/png');
// 輸出到浏覽器
imagepng($image);
// 釋放圖像資源

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved