php实现的验证码文件类实例


Posted in PHP onJune 18, 2015

本文实例讲述了php实现的验证码文件类。分享给大家供大家参考。具体如下:

<?php
/**
* @file
* @version 1.0
* @author  网海浪子
* @brief   验证码文件类
*
*/
class CCheckCodeFile
{
//验证码位数
private $mCheckCodeNum = 4;
//产生的验证码
private $mCheckCode  = '';
//验证码的图片
private $mCheckImage = '';
//干扰像素
private $mDisturbColor = '';
//验证码的图片宽度
private $mCheckImageWidth = '80';
//验证码的图片宽度
private $mCheckImageHeight = '20';
/**
*
* @brief  输出头
*
*/
private function OutFileHeader()
{
 header ("Content-type: image/png");
}
/**
*
* @brief  产生验证码
*
*/
private function CreateCheckCode()
{
 $this->mCheckCode = strtoupper(substr(md5(rand()),0,$this->mCheckCodeNum));
  return $this->mCheckCode;
}
 
/**
*
* @brief  产生验证码图片
*
*/
private function CreateImage()
{
 $this->mCheckImage = @imagecreate ($this->mCheckImageWidth,$this->mCheckImageHeight);
 imagecolorallocate ($this->mCheckImage, 200, 200, 200);
  return $this->mCheckImage;
}
/**
*
* @brief  设置图片的干扰像素
*
*/
private function SetDisturbColor()
{
  for ($i=0;$i<=128;$i++)
  {
  $this->mDisturbColor = imagecolorallocate ($this->mCheckImage, rand(0,255), rand(0,255), rand(0,255));
  imagesetpixel($this->mCheckImage,rand(2,128),rand(2,38),$this->mDisturbColor);
  }
}
/**
*
* @brief  设置验证码图片的大小
*
* @param  $width  宽
*
* @param  $height 高
*
*/
public function SetCheckImageWH($width,$height)
{
 if($width==''||$height=='')return false;
 $this->mCheckImageWidth = $width;
 $this->mCheckImageHeight = $height;
 return true;
}
/**
*
* @brief  在验证码图片上逐个画上验证码
*
*/
private function WriteCheckCodeToImage()
{
  for ($i=0;$i<=$this->mCheckCodeNum;$i++)
  {
  $bg_color = imagecolorallocate ($this->mCheckImage, rand(0,255), rand(0,128), rand(0,255));
  $x = floor($this->mCheckImageWidth/$this->mCheckCodeNum)*$i;
  $y = rand(0,$this->mCheckImageHeight-15);
  imagechar ($this->mCheckImage, 5, $x, $y, $this->mCheckCode[$i], $bg_color);
  }
}
/**
*
* @brief  输出验证码图片
*
*/
public function OutCheckImage()
{
 $this ->OutFileHeader();
 $this ->CreateCheckCode();
 $this ->CreateImage();
 $this ->SetDisturbColor();
 $this ->WriteCheckCodeToImage();
 imagepng($this->mCheckImage);
 imagedestroy($this->mCheckImage);
}
}
$c_check_code_image = new CCheckCodeFile();
//$c_check_code_image ->SetCheckImageWH(100,50);
//设置显示验证码图片的尺寸
$c_check_code_image ->OutCheckImage();
?>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
PHP 类商品秒杀计时实现代码
May 05 PHP
PHP中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
Jul 09 PHP
php中将网址转换为超链接的函数
Sep 02 PHP
PHP 关于访问控制的和运算符优先级介绍
Jul 08 PHP
PHP使用SOAP调用.net的WebService数据
Nov 12 PHP
浅析iis7.5安装配置php环境
May 10 PHP
简单谈谈favicon
Jun 10 PHP
PHP模拟http请求的方法详解
Nov 09 PHP
php异步:在php中使用fsockopen curl实现类似异步处理的功能方法
Dec 10 PHP
PHP实现电商订单自动确认收货redis队列
May 17 PHP
thinkphp5 URL和路由的功能详解与实例
Dec 26 PHP
PHP实现本地图片转base64格式并上传
May 29 PHP
php实现的简单检验登陆类
Jun 18 #PHP
php实现比较全的数据库操作类
Jun 18 #PHP
php文件操作相关类实例
Jun 18 #PHP
php身份证号码检查类实例
Jun 18 #PHP
PHP批量生成图片缩略图的方法
Jun 18 #PHP
基于php的CMS中展示文章类实例分析
Jun 18 #PHP
php实现的用户查询类实例
Jun 18 #PHP
You might like
ecshop 订单确认中显示省市地址信息的方法
2010/03/15 PHP
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
2011/11/10 PHP
php 数组动态添加实现代码(最土团购系统的价格排序)
2011/12/30 PHP
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
2014/07/18 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
2016/12/05 PHP
js静态作用域的功能。
2006/12/25 Javascript
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
JS写的贪吃蛇游戏(个人练习)
2013/07/08 Javascript
JavaScript省市联动实现代码
2014/02/15 Javascript
JavaScript中对象属性的添加和删除示例
2014/05/12 Javascript
jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
2015/08/26 Javascript
JS实现的论坛Ajax打分效果完整实例
2015/10/31 Javascript
用JavaScript获取页面文档内容的实现代码
2016/06/10 Javascript
通过javascript进行UTF-8编码的实现方法
2016/06/27 Javascript
微信小程序 获取微信OpenId详解及实例代码
2016/10/31 Javascript
jquery使用EasyUI Tree异步加载JSON数据(生成树)
2017/02/11 Javascript
Angular2使用Augury来调试Angular2程序
2017/05/21 Javascript
echarts实现折线图的拖拽效果
2019/12/19 Javascript
Angular单元测试之事件触发的实现
2020/01/20 Javascript
js实现滑动进度条效果
2020/08/21 Javascript
分享python数据统计的一些小技巧
2016/07/21 Python
python使用tkinter实现简单计算器
2018/01/30 Python
Python pandas.DataFrame 找出有空值的行
2019/09/09 Python
PyTorch实现AlexNet示例
2020/01/14 Python
django实现将后台model对象转换成json对象并传递给前端jquery
2020/03/16 Python
印度服装购物网站:Limeroad
2018/09/26 全球购物
财务会计专业个人求职信范本
2014/01/08 职场文书
代理协议书范本
2014/04/22 职场文书
借款协议书
2014/09/16 职场文书
校长师德师风自我剖析材料
2014/09/29 职场文书
开除员工通知
2015/04/22 职场文书
医者仁心观后感
2015/06/17 职场文书
2016年情人节问候语
2015/11/11 职场文书
tomcat默认最大连接数及相关调整方法
2022/05/06 Servers
一文搞懂Java中的注解和反射
2022/06/21 Java/Android
Zabbix对Kafka topic积压数据监控的解决方案
2022/07/07 Servers