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

首頁 > 開發 > PHP > 正文

php實現的數字驗證碼及數字運算驗證碼

2024-05-04 23:38:23
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了php實現的數字驗證碼及數字運算驗證碼,以實例形式分別描述了php實現數字驗證碼及數學運算驗證碼的相關技巧,非常簡單實用,需要的朋友可以參考下

本文實例講述了php實現的數字驗證碼及數字運算驗證碼。分享給大家供大家參考。具體如下:

1. 數字驗證碼:

 

 
  1. <?php 
  2. //第一個實例是數字驗證碼,最常見的驗證碼。多少個數字可以由自己決定。 
  3. //$num是生成的驗證碼包含幾個數字 
  4. getValidate(4,60,20); 
  5. function getValidate($num,$w,$h){ 
  6. $code = ""
  7. for($i=0;$i<$num;$i++){ 
  8. $code .= rand(0,9); 
  9. //code變量最后是$num個數字,并且是字符串。因襲如果是生成四位的數字驗證碼,可以用rand(1000,9999)生成 
  10. Header("Content-type:image/PNG"); 
  11. $img = imagecreate($w,$h);//創建圖片,長寬參數是一開始定義好的。 
  12. $black = imagecolorallocate($img,0,0,0);//定義黑色 
  13. $gray = imagecolorallocate($img,200,200,200);//定義灰色 
  14. $bgcolor = imagecolorallocate($img,255,255,255);//背景色白色 
  15. imagefill($img,0,0,$gray); 
  16. //imagefill($image,ing $x,int $y,int $color),在image圖像的坐標x,y處用color顏色執行區域填充 
  17. //給驗證碼畫上邊框,感覺驗證碼美美的,其實呢畫邊框就是給他畫上一個矩形 
  18. imagerectangle($img,0,0,$w-1,$h-1,$black);//用黑色的框框 
  19. /*imagestring($image,$font,$x,$y,$s,$col) 
  20. 用col顏色將字符串s畫到image所代表的圖像的x,y處(xy是字符串的左上角坐標), 
  21. 整幅圖像的左上角為(0,0)如果font是1,2,3,4,5則使用內置字體*/ 
  22. //一下是畫四個數字的方法,讓四個字符位置都隨機等 
  23. $strx = rand(5,10); 
  24. for($i = 0;$i < $num;$i++){ 
  25. $strops = rand(1,6); 
  26. imagestring($img,5,$strx,$strops,substr($code,$i,1),$black); 
  27. $strx += rand(8,12); 
  28. //strx是橫坐標,需要每一次加上之前的坐標,保證不會重疊。縱坐標不管 
  29. //substr() 函數返回字符串的一部分,substr(string,start,length),要截取的字符串,start開始位置,length截取的長度 
  30. //生成好了數字,下面要給驗證碼區域一些干擾,防止一些工具可以自動識別 
  31. //1.方法一:給背景加上很多噪點 
  32. //imagesetpixel($image,$x,$y,$color),在image圖像中用color顏色在x,y坐標(圖像左上角為0,0)上畫一個點 
  33. for($i = 0;$i<80;$i++){ 
  34. imagesetpixel($img, rand(0,$w), rand(0,$h), $black);//這些點分布在這個背景里面 
  35. //2.方法二:繪制幾條虛線 
  36. $style = array($black,$gray); 
  37. imagesetstyle($img, $style); 
  38. //imagesetstyle($image,$style),設定畫線的風格,像素組成的數組 
  39. $y1 = rand(0,$h); 
  40. $y2 = rand(0,$h); 
  41. $y3 = rand(0,$h); 
  42. $y4 = rand(0,$h); 
  43. imageline($img,0,$y1,$w,$y2,IMG_COLOR_STYLED); 
  44. imageline($img,0,$y3,$w,$y4,IMG_COLOR_STYLED); 
  45. imagepng($img); 
  46. imagedestroy($img); 
  47. ?> 

2. 數字運算驗證碼:

 

 
  1. <?php 
  2. getValidate(100,30); 
  3. function getValidate($w,$h){ 
  4. $img = imagecreate($w,$h); 
  5. $gray = imagecolorallocate($img,255,255,255); 
  6. $black = imagecolorallocate($img,rand(0,200),rand(0,200),rand(0,200)); 
  7. $red = imagecolorallocate($img, 255, 0, 0); 
  8. $white = imagecolorallocate($img, 255, 255, 255); 
  9. $green = imagecolorallocate($img, 0, 255, 0); 
  10. $blue = imagecolorallocate($img, 0, 0, 255); 
  11. imagefilledrectangle($img, 0, 0, 100, 30, $black); 
  12. for($i = 0;$i < 80;$i++){ 
  13. imagesetpixel($img, rand(0,$w), rand(0,$h), $gray); 
  14. $num1 = rand(1,99); 
  15. $num2 = rand(1,99); 
  16. imagestring($img, 5, 5, rand(1,10), $num1, $red); 
  17. imagestring($img,5,30,rand(1,10),getRand(), $white); 
  18. imagestring($img,5,45,rand(1,10),$num2, $green); 
  19. imagestring($img,5,65,rand(1,10),"=", $blue); 
  20. imagestring($img,5,80,rand(1,10),"?", $red); 
  21. header("content-type:image/png"); 
  22. imagepng($img); 
  23. imagedestroy($img); 
  24. function getRand(){ 
  25. $code = rand(0,1); 
  26. switch ($code) { 
  27. case 0: 
  28. return "+"
  29. break
  30. case 1: 
  31. return "-"
  32. break
  33. default
  34. # code... 
  35. break
  36. ?> 

希望本文所述對大家的php程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 凤凰县| 贵南县| 资溪县| 五寨县| 新昌县| 舟山市| 通辽市| 循化| 靖宇县| 阳春市| 永靖县| 三原县| 宜兰县| 廊坊市| 皋兰县| 喜德县| 蚌埠市| 霍林郭勒市| 绥德县| 平湖市| 平利县| 克什克腾旗| 富源县| 五原县| 盖州市| 南陵县| 江西省| 华坪县| 自治县| 南丰县| 文昌市| 方城县| 乌兰县| 南溪县| 蒙阴县| 清远市| 凯里市| 宁国市| 永州市| 忻城县| 七台河市|