国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP基于GD2函數庫實現驗證碼功能示例

2024-09-04 11:42:20
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了PHP基于GD2函數庫實現驗證碼功能,簡單介紹了GD2函數庫的常用函數,并結合實例形式分析了php實現驗證碼功能相關操作技巧,需要的朋友可以參考下。

本文實例講述了PHP基于GD2函數庫實現驗證碼功能,分享給大家供大家參考,具體如下:

在正式制作驗證碼之前要先補充點知識,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是線段的右下角坐標。

代碼主要如下:

  1. <?php 
  2.   //創建畫布 
  3.   $img = imagecreatetruecolor(100, 50); 
  4.   //創建顏色 
  5.   $black = imagecolorallocate($img, 0x00, 0x00, 0x00); 
  6.   $green = imagecolorallocate($img, 0x00, 0xFF, 0x00); 
  7.   $white = imagecolorallocate($img, 0xFF, 0xFF, 0xFF); 
  8.   //畫布填充顏色 
  9.   imagefill($img, 0, 0, $white);//背景為白色 
  10.   //生成隨機驗證碼 
  11.   $code = make(5); 
  12.   //設置文字 
  13.   imagestring($img, 5, 10, 10, $code$black);//黑字 
  14.   //加入噪點干擾 
  15.   for ($i = 0; $i <300; $i++){ 
  16.     imagesetpixel($img, rand(0, 100), rand(0, 100), $black); 
  17.     imagesetpixel($img, rand(0, 100), rand(0, 100), $green); 
  18.   } 
  19.   //加入線段干擾 
  20.   for ($n = 0; $n <=1; $n++){ 
  21.     imageline($img, 0, rand(0, 40), 100, rand(0, 40), $black); 
  22.     imageline($img, 0, rand(0, 40), 100, rand(0, 40), $white); 
  23.   } 
  24.   //輸出驗證碼 
  25.   header("content-type: image/png");//告訴瀏覽器這個文件是一個png圖片 
  26.   imagepng($img); 
  27.   //銷毀圖片,釋放內存 
  28.   imagedestroy($img); 
  29.   //生成隨機驗證碼的函數 
  30.   function make($length){ 
  31.     $code = 'abcdefghijklmnopqrsruvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
  32.     //str_shuffle()函數用于打亂字符串 
  33.     return substr(str_shuffle($code), 0, $length); 
  34.   } 
  35. ?>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桂林市| 平顺县| 宁强县| 叙永县| 澄城县| 祁阳县| 新丰县| 澎湖县| 平遥县| 大同县| 普安县| 崇左市| 德安县| 余干县| 文山县| 安龙县| 调兵山市| 蒙自县| 连山| 莒南县| 长海县| 绥阳县| 宁城县| 河池市| 同仁县| 闵行区| 江源县| 西藏| 福清市| 绍兴市| 武义县| 峨边| 青海省| 广丰县| 恩平市| 买车| 政和县| 闻喜县| 揭阳市| 黄陵县| 肃南|