这篇文章主要介绍了关于使用php实现验证码类 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
<?php 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->num;$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; } return $str; } // 3. 初始化画布图像资源 private function Hb(){ $this->hb = imagecreatetruecolor($this->width,$this->height); } // 4. 生成背景颜色 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->num;$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->num;$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->hb); }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; } } $a = new Code(); $a ->getCodeStr(); ?>
相关推荐:
以上是php实现验证码类 的详细内容。更多信息请关注PHP中文网其他相关文章!

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3汉化版
中文版,非常好用

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Dreamweaver CS6
视觉化网页开发工具

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中