首頁 > 後端開發 > php教程 > php 驗證碼類別 php 驗證碼

php 驗證碼類別 php 驗證碼

WBOY
發布: 2016-07-25 09:04:21
原創
1111 人瀏覽過
  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 驗證碼的一段代码



來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板