>백엔드 개발 >PHP 튜토리얼 >PHP 인증 코드 클래스 PHP 인증 코드

PHP 인증 코드 클래스 PHP 인증 코드

WBOY
WBOY원래의
2016-07-25 09:04:211107검색
  1. /**
  2. * 通用PHP 인증 코드 클래스 PHP 인증 코드类 img.php
  3. * 版本:V0.1
  4. * bbs.it-home.org 2013/3/1
  5. */
  6. class ValidateCode {
  7. private $charset="abcdefghizklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; //随机因子
  8. private $code; //PHP 인증 코드 클래스 PHP 인증 코드文字
  9. private $codelen=4; //PHP 인증 코드 클래스 PHP 인증 코드显示几个文字
  10. private $width=130; //PHP 인증 코드 클래스 PHP 인증 코드宽度
  11. private $height=50; //PHP 인증 코드 클래스 PHP 인증 코드高度
  12. private $img; //PHP 인증 코드 클래스 PHP 인증 코드资源句柄
  13. private $font; //指定的字体
  14. private $fontsize=20; //指定的字体大小
  15. private $fontcolor; //字体颜色 随机
  16. //构造类 编写字体
  17. public function __construct(){
  18. $this->font=ROOT_PATH.'/font/elephant.ttf';
  19. }
  20. //创建4个随机码
  21. private function createCode(){
  22. $_leng=strlen($this->charset);
  23. for($i=1;$icodelen;$i ){
  24. $this->code.=$this->charset[mt_rand(0,$_leng)];
  25. }
  26. return $this->code;
  27. }
  28. //创建背景
  29. private function createBg(){
  30. //创建画布 给一个资源jubing
  31. $this->img=imagecreatetruecolor($this->width,$this->height);
  32. //背景颜色
  33. $color=imagecolorallocate($this->img,mt_rand(157,255),mt_rand(157,255),mt_rand(157,255));
  34. //画出一个矩形
  35. imagefilledrectangle($this->img,0,$this->height,$this->width,0,$color);
  36. }
  37. //创建字体
  38. private function createFont(){
  39. $_x=($this->width / $this->codelen); //字体长度
  40. for ($i=0;$icodelen;$i ){
  41. //文字颜色
  42. $color=imagecolorallocate($this->img,mt_rand(0,156),mt_rand(0,156),mt_rand(0,156));
  43. //资源句柄 字体大小 倾斜度 字体长度 字体高度 字体颜色 字体 具体文本
  44. imagettftext($this->img,$this->fontsize,mt_rand(-30,30),$_x*$i mt_rand(1,5),$this->height/1.4,$color,$this->font,$this->code[$i]);
  45. }
  46. }
  47. //随机线条
  48. private function createLine(){
  49. //随机线条
  50. for ($i=0;$i $color = imagecolorallocate($this->img,mt_rand(0,156),mt_rand(0,156),mt_rand(0,156));
  51. imageline($this->img,mt_rand(0,$this->width),mt_rand(0,$this->height),mt_rand(0,$this->width),mt_rand(0,$this->height),$color);
  52. }
  53. //随机雪花
  54. for ($i=0;$i $color = imagecolorallocate($this->img,mt_rand(220,255),mt_rand(220,255),mt_rand(220,255));
  55. imagestring($this->img,mt_rand(1,5),mt_rand(0,$this->width),mt_rand(0,$this->height),'*',$color);
  56. }
  57. }
  58. //输出背景
  59. private function outPut(){
  60. //生成标头
  61. header('ContentType:img/png');
  62. //输出图片
  63. imagepng($this->img);
  64. //销毁结果集
  65. imagedestroy($this->img);
  66. }
  67. //对外输出
  68. public function doimg(){
  69. //加载背景
  70. $this->createBg();
  71. //加载文件
  72. $this->createCode();
  73. //加载线条
  74. $this->createLine();
  75. //加载字体
  76. $this->createFont();
  77. //加载背景
  78. $this->outPut();
  79. }
  80. //获取PHP 인증 코드 클래스 PHP 인증 코드
  81. public function getCode(){
  82. return strtolower($this->code);
  83. }
  84. }
  85. ?>
复制代码

调用示例:index.php PHP 인증 코드 클래스 PHP 인증 코드 为大家推荐几篇有关phpPHP 인증 코드 클래스 PHP 인증 코드的文章: php随机PHP 인증 코드 클래스 PHP 인증 코드 php生成随机PHP 인증 코드 클래스 PHP 인증 코드(图文) 用php生成带有雪花背景的PHP 인증 코드 클래스 PHP 인증 코드 php写的一个PHP 인증 코드 클래스 PHP 인증 코드 php生成动态图片PHP 인증 코드 클래스 PHP 인증 코드的一段代码



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.