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 相关文章推荐
第1次亲密接触PHP5(1)
Oct 09 PHP
php设计模式之命令模式的应用详解
May 21 PHP
PHP register_shutdown_function函数的深入解析
Jun 03 PHP
简单的cookie计数器实现源码
Jun 07 PHP
解析php通过cookies获取远程网页的指定代码
Jun 25 PHP
php连接函数implode与分割explode的深入解析
Jun 26 PHP
PHP查询网站的PR值
Oct 30 PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
Nov 24 PHP
PHP中SESSION的注销与清除
Apr 16 PHP
[原创]php简单防盗链验证实现方法
Jul 09 PHP
PHP等比例压缩图片的实例代码
Jul 26 PHP
php使用fullcalendar日历插件详解
Mar 06 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
PHP中加密解密函数与DES加密解密实例
2014/10/17 PHP
php匹配字符中链接地址的方法
2014/12/22 PHP
PHP通过串口实现发送短信
2015/07/08 PHP
Zend Framework教程之配置文件application.ini解析
2016/03/10 PHP
juqery 学习之五 文档处理 包裹、替换、删除、复制
2011/02/11 Javascript
Javascript操作URL函数修改版
2013/11/07 Javascript
Node.js实现的简易网页抓取功能示例
2014/12/05 Javascript
基于ajax实现文件上传并显示进度条
2015/08/03 Javascript
js中遍历Map对象的方法
2016/07/27 Javascript
js实现文字向上轮播功能
2017/01/13 Javascript
Bootstrap 响应式实用工具实例详解
2017/03/29 Javascript
vue.js实现数据动态响应 Vue.set的简单应用
2017/06/15 Javascript
微信小程序页面滑动屏幕加载数据效果
2020/11/16 Javascript
web前端vue实现插值文本和输出原始html
2018/01/19 Javascript
python3.3使用tkinter开发猜数字游戏示例
2014/03/14 Python
在树莓派2或树莓派B+上安装Python和OpenCV的教程
2015/03/30 Python
python实现从字典中删除元素的方法
2015/05/04 Python
解决Python requests库编码 socks5代理的问题
2018/05/07 Python
Django + Uwsgi + Nginx 实现生产环境部署的方法
2018/06/20 Python
python 搜索大文件的实例代码
2019/07/08 Python
python并发编程多进程 模拟抢票实现过程
2019/08/20 Python
python super()函数的基本使用
2020/09/10 Python
Django后端按照日期查询的方法教程
2021/02/28 Python
GUESS西班牙官方网上商城:美国服饰品牌
2017/03/15 全球购物
高性能装备提升营地:Kammok
2019/02/27 全球购物
俄罗斯品牌服装和鞋子的在线商店:KUPIVIP
2019/10/27 全球购物
C# Debug和Testing相关面试题
2015/10/25 面试题
应聘医学检验人员自荐信
2013/09/27 职场文书
乡镇安全生产目标责任书
2014/07/23 职场文书
大学学生个人总结
2015/02/15 职场文书
2015年部门工作总结范文
2015/03/31 职场文书
老公出轨后的保证书
2015/05/08 职场文书
学雷锋主题班会教案
2015/08/13 职场文书
组织委员竞选稿
2015/11/21 职场文书
Redis Cluster集群动态扩容的实现
2021/07/15 Redis
css清除浮动clearfix:after的用法详解(附完整代码)
2023/05/21 HTML / CSS