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采集速度探究总结(原创)
Apr 18 PHP
php SQL防注入代码集合
Apr 25 PHP
Zend 输出产生XML解析错误
Mar 03 PHP
php addslashes 函数详细分析说明
Jun 23 PHP
PHP 调试工具Debug Tools
Apr 30 PHP
PHP中PDO基础教程 入门级
Sep 04 PHP
ThinkPHP整合百度Ueditor图文教程
Oct 21 PHP
php制作简单模版引擎
Apr 07 PHP
PHP生成可点击刷新的验证码简单示例
May 13 PHP
php时间函数用法分析
May 28 PHP
php实现贪吃蛇小游戏
Jul 26 PHP
php实现分页功能的详细实例方法
Sep 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
ezSQL PHP数据库操作类库
2010/05/16 PHP
php下正则来匹配dede模板标签的代码
2010/08/21 PHP
thinkphp实现like模糊查询实例
2014/10/29 PHP
PHP如何获取Cookie并实现模拟登录
2020/07/16 PHP
PHP执行系统命令函数实例讲解
2021/03/03 PHP
jQuery弹出层始终垂直居中相对于屏幕或当前窗口
2013/04/01 Javascript
基于JavaScript实现继承机制之构造函数方法对象冒充的使用详解
2013/05/07 Javascript
通过隐藏iframe实现文件下载的js方法介绍
2014/02/26 Javascript
推荐一个自己用的封装好的javascript插件
2015/01/29 Javascript
angularjs学习笔记之三大模块(modal,controller,view)
2015/09/26 Javascript
js仿QQ中对联系人向左滑动、滑出删除按钮的操作
2016/04/07 Javascript
利用Node.JS实现邮件发送功能
2016/10/21 Javascript
js倒计时显示实例
2016/12/11 Javascript
opencv 识别微信登录验证滑动块位置
2018/08/07 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
Vue动态组件和异步组件原理详解
2019/05/06 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
2019/10/30 Javascript
Vue切换div显示隐藏,多选,单选代码解析
2020/07/14 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
2020/08/03 Javascript
Python入门_浅谈数据结构的4种基本类型
2017/05/16 Python
Python中装饰器高级用法详解
2017/12/25 Python
Python日期格式和字符串格式相互转换的方法
2020/02/18 Python
python 解压、复制、删除 文件的实例代码
2020/02/26 Python
Django 多对多字段的更新和插入数据实例
2020/03/31 Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
2020/07/03 Python
美国最受欢迎的度假租赁网站:VRBO
2016/08/02 全球购物
印尼最大的网上书店:Gramedia.com
2018/09/13 全球购物
Interhome丹麦:在线预订度假屋和公寓
2019/07/18 全球购物
彪马香港官方网上商店:PUMA香港
2020/12/06 全球购物
Java TransactionAPI (JTA) 主要包含几部分
2012/12/07 面试题
2013年办公室秘书的个人自我鉴定
2013/10/24 职场文书
客房主管岗位职责
2013/12/09 职场文书
社区国庆节活动方案
2014/02/05 职场文书
建筑学专业自荐书
2014/07/09 职场文书
督导岗位职责范本
2015/04/10 职场文书
pytorch 实现变分自动编码器的操作
2021/05/24 Python