>  기사  >  백엔드 개발  >  PHP 사용자 정의 크기 확인 코드의 예제 코드

PHP 사용자 정의 크기 확인 코드의 예제 코드

WBOY
WBOY원래의
2016-07-25 08:59:04736검색
  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으로 문의하세요.