PHP基於GD2函式庫實現驗證碼功能示例

2022-09-26 06:45:09 字數 1517 閱讀 4220

在正式製作驗證碼之前要先補充點知識,php使用gd2函式庫實現對各種圖形影象的處理,所以我們製作驗證碼主要要使用到一些gd2函式庫裡的一些函式:

imagecreatetruecolor($width,$height)函式,主要用於建立畫布,有2個引數width和height是必選的,代表你所要建立的畫布的長和寬;

imagecolorallocate($image, $red, $green, $blue)函式,主要用於填充影象,第1個引數是你所建立的影象的識別符號,後面3個引數是顏色的rgb設定;

imagefill($image, $x, $y, $color)函式,第乙個函式是你建立的影象識別符號,第2、3個引數$x、$y是左上角座標,最後乙個引數是你要填充顏色;

imagestring($image, $font, $x, $y, $string, $color)函式設定文字,且imagestring()函式如果直接繪製中文字串會出現亂碼,如果要繪製中文字串可以使用imagettftext()函式;

imagepng($image[,$filename])函式以phg格式將影象輸出到瀏覽器或者儲存為檔案,第1個引數為你建立的影象標識號,第2個引數為可選引數,你要儲存檔案的檔名;

imagesetpixel($image, $x, $y, $color)函式畫單個畫素點;

imageline($image, $x1, $y1, $x2, $y2, $color)函式畫一條線段,$x1、$y1是線段是左上角座標,$x2、$y2是線段的右下角座標。

**主要如下:

<?php //建立畫布

$img = imagecreatetruecolor(100, 50);

//建立顏色

$black = imagecolorallocate($img, 0x00, 0x00, 0x00);

$green = imagecolorallocate($img, 0x00, 0xff, 0x00);

$white = imagecolorallocate($img, 0xff, 0xff, 0xff);

//畫布填充顏色

imagefidrsvxll($img, 0, 0, $white);//背景為白色

//生成隨機驗證碼

$code = make(5);

//設定文字

imagestrin程式設計客棧g($img, 5, 10, 10, $code, $black);//黑字

//加入噪點干擾

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

//加入線段干擾

for ($n = 0; $n <=1; $n++)

//輸出驗證碼

header("content-type: image/png");//告訴瀏覽器這個檔案是乙個png

imagepng($img);

//銷毀,釋放記憶體

imagedestroy($img);

//生成隨機驗證碼的函式

function make($length)

?>

實現效果如下圖:

php 配置 gd2,配置PHP對gd庫的支援

搭建zabbix的時候遇到有對php的需求檢測,發現沒有對gd的支援,記錄下。gd庫是php處理圖形的擴充套件庫,它提供了一系列用來處理的api,使用gd庫可以處理,或者生成,也可以給加水印。1 安裝zlib,一般系統自帶已經安裝好,可以用以下命令去檢視 rpm qa grep zlib 2 安裝l...

php 基於GD庫驗證碼

頁面關鍵html 請輸入驗證碼看不清 checkcode 方法,採用ajax校驗驗證碼 呼叫gd庫類,畫驗證碼 隨機生成乙個4位數字的驗證碼 num for i 0 i 4 i session start 開啟session session yan substr num,0,4 用session記住...

php學習筆記4 php中GD2擴充套件庫的學習總結

關於php gd2擴充套件庫,首先你要確定php環境已配置完成,才能進行接下來的操作,以下是我試驗成功的幾種題型 gd2建立真彩影象 header content type image png height 300 width 300 im imagecreatetruecolor width,he...