首頁  >  文章  >  後端開發  >  php自訂大小驗證碼的實例程式碼

php自訂大小驗證碼的實例程式碼

WBOY
WBOY原創
2016-07-25 08:59:04701瀏覽
  1. /**

  2. * php 验证码 可自定义大小
  3. * edit bbs.it-home.org
  4. */
  5. function vCode($num=4,$size=20, $width=0,$height=0){
  6. !$width && $width = $num*$size*4/5+5;
  7. !$height && $height = $size + 10;
  8. // 去掉了 0 1 O l 等
  9. $str = "23456789abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVW";
  10. $code = '';
  11. for ($i=0; $i<$num; $i++){
  12. $code.= $str[mt_rand(0, strlen($str)-1)];
  13. }
  14. // 画图像
  15. $im = imagecreatetruecolor($width,$height);
  16. // 定义要用到的颜色
  17. $back_color = imagecolorallocate($im, 235, 236, 237);
  18. $boer_color = imagecolorallocate($im, 118, 151, 199);
  19. $text_color = imagecolorallocate($im, mt_rand(0,200), mt_rand(0,120), mt_rand(0,120));

  20. // 画背景

  21. imagefilledrectangle($im,0,0,$width,$height,$back_color);
  22. // 画边框
  23. imagerectangle($im,0,0,$width-1,$height-1,$boer_color);
  24. // 画干扰线
  25. for($i=0;$i<5;$i++){
  26. $font_color = imagecolorallocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));
  27. imagearc($im,mt_rand(-$width,$width),mt_rand(-$height,$height),mt_rand(30,$width*2),mt_rand(20,$height*2),mt_rand(0,360),mt_rand(0,360),$font_color);
  28. }
  29. // 画干扰点
  30. for($i=0;$i<50;$i++){
  31. $font_color = imagecolorallocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));
  32. imagesetpixel($im,mt_rand(0,$width),mt_rand(0,$height),$font_color);
  33. }
  34. // 画验证码
  35. @imagefttext($im, $size , 0, 5, $size+3, $text_color, 'c://WINDOWS//Fonts//simsun.ttc',$code);
  36. header("Cache-Control: max-age=1, s-maxage=1, no-cache, must-revalidate");
  37. header("Content-type: image/png");
  38. imagepng($im);
  39. imagedestroy($im);
  40. }
  41. ?>

复制代码

调用示例:

  1. // 验证码示例
  2. //4个字符,大小为20
  3. vCode(4,20);
  4. ?>
复制代码


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn