PHP之生成驗證碼

2021-08-02 00:20:52 字數 2653 閱讀 7464

今天寫乙個生成驗證碼的程式,就是用了剛學的gd2圖形庫,下面我就為大家分享我的步驟:

首先我們要有乙個明確的計畫:

1.gd庫的知識

建立乙個基於真彩的畫布

imagecreatetruecolor(int x_size,int y_size);

分配乙個顏色

imagecolorallocate(resource image,int red,int green,int blue);//紅綠藍

區域填充

imagefill(resource image,int x,int y,int color);

矩形框imagerectangle(resource image,int x1,int y1,int x2,int y2,int color);

畫乙個畫素點

imagesetpixel(resource image,int x,int y,int color);

畫一條線段

imageline(resource image,int x1,int y1,int x2,int y2,int color);

繪製文字內容

imagettftext(resource image,float size,float angle,int x,int y,int color,string content);

以png格式將影象輸出到瀏覽器或檔案

imagepng(resource image[,string filename]);

銷毀乙個影象

imagedestroy(resource image);

int rand([int min,int max]);//產生乙個隨機數

strlen();//獲取字串的長度

header();//設定相應頭資訊

2.實現步驟

1.建立乙個畫布

2.開始繪畫

3.輸出影象

4.銷毀(釋放記憶體)

3.具體實現步驟

整個驗證碼的實現步驟

1.先複製乙個字型檔案

2.定義乙個函式(用於隨機獲取驗證碼內容)

3.開始繪畫,繪畫驗證碼

我們的字型:c:/window/fonts,然後選擇你喜歡的字型

直接上乾貨,**注釋的比較詳細:php

<?php 

//header("content-type:text/html;charset=utf-8");

header("content-type:image/png");

//繪製驗證碼

$number=4;//驗證碼的長度

$str=getcode($number,0);//獲取驗證碼

$height=30;//驗證碼的高度

$width=$number*20;

//1建立畫布

$im=imagecreate($width,$height);//影象元

//定義幾個顏色,輸出不同顏色的驗證碼

$color=imagecolorallocate($im,111,0,55);

$color=imagecolorallocate($im,0,77,0);

$color=imagecolorallocate($im,0,0,160);

$color=imagecolorallocate($im,221,111,0);

$color=imagecolorallocate($im,220,0,0);

//背景顏色(這就是顏色)

$bg=imagecolorallocate($im,200,200,200);

//2開始繪畫

imagefill($im,0,0,$bg);

//新增乙個邊框

imagerectangle($im,0,0,$width-1,$height-1,$color[rand(0,4)]);

//隨機新增一些干擾點

for($j=0;$j<200;$j++)

//隨機新增干擾線

for($i=0;$i<5;$i++)

//繪製驗證碼

for($i=0;$i

//3輸出影象

//設定響應頭資訊,影象相應

imagepng($im);

//4銷毀影象資源

imagedestroy($im);

/**定義乙個隨機生成驗證碼內容的函式

@ param $m=4 驗證碼的個數

@ param $type=0 驗證碼的型別(純數字) 1(數字加小寫字母) 2(數字加大小寫字母)

**/function getcode($m=4,$type=0)

return $c;

//echo strlen($str);

}//echo getcode(6,1);

?>

html:

<?php 

//驗證碼的使用

header("content-type:text/html;charset=utf-8");

?>

結果如下:

在這裡,不同的瀏覽器可能會得到不同的效果,注意觀察

php生成驗證碼

header content type image gif 初始化 border 0 是否要邊框 1要 0不要 how 4 驗證碼位數 w how 15 寬度 h 20 高度 fontsize 5 字型大小 alpha abcdefghijkmnopqrstuvwxyz 驗證碼內容1 字母 numb...

php 生成驗證碼

驗證碼個數 num 4 驗證碼寬度 width 80 驗證碼高度 height 20 驗證碼 注意是字串 code 生成驗證碼 for i 0 i num i 驗證碼儲存到session中 session start session verifycode code 建立影象 image imagec...

php 生成驗證碼

che.php session start im imagecreatetruecolor 100,30 設定顏色 bg imagecolorallocate im,0,0,0 背景色 te imagecolorallocate im,255,255,255 字型顏色 for i 0 i 4 i 輸...