Heim  >  Artikel  >  Backend-Entwicklung  >  php自定义大小验证码的实例代码

php自定义大小验证码的实例代码

WBOY
WBOYOriginal
2016-07-25 08:59:04701Durchsuche
  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$code.= $str[mt_rand(0, strlen($str)-1)];
  12. }
  13. // 画图像
  14. $im = imagecreatetruecolor($width,$height);
  15. // 定义要用到的颜色
  16. $back_color = imagecolorallocate($im, 235, 236, 237);
  17. $boer_color = imagecolorallocate($im, 118, 151, 199);
  18. $text_color = imagecolorallocate($im, mt_rand(0,200), mt_rand(0,120), mt_rand(0,120));
  19. // 画背景

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

调用示例:

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


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn