ホームページ  >  記事  >  バックエンド開発  >  PHPカスタムサイズ検証コードのサンプルコード

PHPカスタムサイズ検証コードのサンプルコード

WBOY
WBOYオリジナル
2016-07-25 08:59:04701ブラウズ
  1. /**

  2. * PHP 検証コードのカスタマイズ可能なサイズ
  3. * 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$font_color = imagecolorallocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));
  26. 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);
  27. }
  28. // 干渉点を描画
  29. for($i=0;$i$font_color = imagecolorallocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand( 0,255 ));
  30. imagesetpixel($im,mt_rand(0,$width),mt_rand(0,$height),$font_color);
  31. }
  32. // 検証コードを描画
  33. @imagefttext($im, $size , 0, 5 , $size+3, $text_color, 'c://WINDOWS//Fonts//simsun.ttc',$code);
  34. header("キャッシュ制御: max-age=1, s-maxage=1, -キャッシュなし、再検証が必要です");
  35. header("Content-type: image/png");
  36. imagepng($im);
  37. imagedestroy($im);
  38. }
  39. ?>

コードをコピー

呼び出し例:

  1. //検証コード例
  2. //4文字、サイズは20
  3. vCode(4,20);
  4. ?>
コードをコピー


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。