首页 > 编程 > PHP > 正文

个人写的PHP验证码生成类分享

2020-03-22 19:51:07
字体:
来源:转载
供稿:网友
此验证码类直接拿去就可以用,也可以参考!其中类成员codestr是生成的验证码字符串: * 验证码html' target='_blank'>class Code{ // 1. 定义各个成员 有宽、高、画布、字数、类型、画类型 private $width; //宽度 private $height; //高度 private $num; //验证码字数 private $imgType; //生成图片类型 private $Type; //字串类型 1,2,3 三个选项 1 纯数字 2 纯小写字母 3 大小写数字混合 private $hb; //画布 public $codestr; // 验证码字串 public function __construct($height=20,$num=4,$imgType="jpeg",$Type=1){ $this- width = $num*20; $this- height = $height; $this- num = $num; $this- imgType = $imgType; $this- Type = $Type; $this- codestr = $this- codestr(); $this- zuhe(); // 2. 定义随机获取字符串函数 private function codestr(){ switch($this- Type){ case 1: // 类型为1 获取1-9随机数 $str = implode("",array_rand(range(0,9),$this- num)); break; case 2: // 类型为2 获取a-z随机小写字母 $str = implode("",array_rand(array_flip(range(a,z)),$this- num)); break; case 3: // 类型为3 获取数字,小写字母,大写字母 混合 for($i=0;$i $this- $i++){ $m = rand(0,2); switch($m){ case 0: $o = rand(48,57); break; case 1: $o = rand(65,90); break; case 2: $o = rand(97,122); break; $str .= sprintf("%c",$o); break;
private function Bg(){ return imagecolorallocate($this- hb,rand(130,250),rand(130,250),rand(130,250)); // 5. 生成字体颜色 private function Font(){ return imagecolorallocate($this- hb,rand(0,100),rand(0,100),rand(0,100)); // 6. 填充背景颜色 private function BgColor(){ imagefilledrectangle($this- hb,0,0,$this- width,$this- height,$this- Bg()); // 7. 干扰点 private function ganrao(){ $sum=floor(($this- width)*($this- height)/3); for($i=0;$i $sum;$i++){ imagesetpixel($this- hb,rand(0,$this- width),rand(0,$this- height),$this- Bg()); // 8. 随机直线 弧线 private function huxian(){ for($i=0;$i $this- $i++){ imageArc($this- hb,rand(0,$this- width),rand(0,$this- height),rand(0,$this- width),rand(0,$this- height),rand(0,360),rand(0,360),$this- Bg()); // 9. 写字 private function xiezi(){ for($i=0;$i $this- $i++){ $x=ceil($this- width/$this- num)*$i; $y=rand(1,$this- height-15); imagechar($this- hb,5,$x+4,$y,$this- codestr[$i],$this- Font()); // 10. 输出 private function OutImg(){ $shuchu="image".$this- imgType; $header="Content-type:image/".$this- imgType; if(function_exists($shuchu)){ header($header); $shuchu($this- }else{ exit("GD库没有此类图像"); // 11. 拼装 private function zuhe(){ $this- Hb(); $this- BgColor(); $this- ganrao(); $this- huxian(); $this- xiezi(); $this- OutImg(); public function getCodeStr(){ return $this- codestr; PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表