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 相关文章推荐
第一节--面向对象编程
Nov 16 PHP
UTF8编码内的繁简转换的PHP类
Jul 09 PHP
PHP JSON 数据解析代码
May 26 PHP
php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
Nov 02 PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
Oct 30 PHP
摘自织梦CMS的HTTP文件下载类
Aug 08 PHP
简介WordPress中用于获取首页和站点链接的PHP函数
Dec 17 PHP
PHP+MySQL实现的简单投票系统实例
Feb 24 PHP
php的socket编程详解
Nov 20 PHP
PHP面向对象程序设计之多态性的应用示例
Dec 19 PHP
Laravel重定向,a链接跳转,控制器跳转示例
Oct 22 PHP
tp5.1 框架数据库-数据集操作实例分析
May 26 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读MYSQL中文乱码的解决方法
2006/12/17 PHP
PHP中的float类型使用说明
2010/07/27 PHP
php中字符串和正则表达式详解
2014/10/23 PHP
php使用curl简单抓取远程url的方法
2015/03/13 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
2016/05/16 PHP
php array_values 返回数组的所有值详解及实例
2016/11/12 PHP
Yii2.0实现生成二维码功能实例
2017/10/24 PHP
jQuery $.each的用法说明
2010/03/22 Javascript
基于jquery的loading 加载提示效果实现代码
2011/09/01 Javascript
js sort 二维数组排序的用法小结
2014/01/24 Javascript
HTML Table 空白单元格补全的简单实现
2016/10/13 Javascript
jQuery+ajax的资源回收处理机制分析
2017/01/07 Javascript
bootstrap css样式之表单
2017/01/19 Javascript
NodeJS学习笔记之Module的简介
2017/03/24 NodeJs
React学习之事件绑定的几种方法对比
2017/09/24 Javascript
js实现简易计算器功能
2019/10/18 Javascript
使用vue-cli3+typescript的项目模板创建工程的教程
2020/02/28 Javascript
使用Python进行稳定可靠的文件操作详解
2013/12/31 Python
python实现读取命令行参数的方法
2015/05/22 Python
python查看微信好友是否删除自己
2016/12/19 Python
TF-IDF算法解析与Python实现方法详解
2017/11/16 Python
python 正确保留多位小数的实例
2018/07/16 Python
在Pycharm中对代码进行注释和缩进的方法详解
2019/01/20 Python
python生成器/yield协程/gevent写简单的图片下载器功能示例
2019/10/28 Python
python实现对列表中的元素进行倒序打印
2019/11/23 Python
Python新建项目自动添加介绍和utf-8编码的方法
2020/12/26 Python
一款纯css3实现的漂亮的404页面的实例教程
2014/11/27 HTML / CSS
CSS3移动端vw+rem不依赖JS实现响应式布局的方法
2019/01/23 HTML / CSS
HTML5探秘:用requestAnimationFrame优化Web动画
2018/06/03 HTML / CSS
在Ajax应用中信息是如何在浏览器和服务器之间传递的
2016/05/31 面试题
2013年保送生自荐信格式
2013/11/20 职场文书
2014年自我评价
2014/01/04 职场文书
高二政治教学反思
2014/02/01 职场文书
道德模范先进事迹
2014/02/14 职场文书
《鸿门宴》教学反思
2014/04/22 职场文书
酒店优秀员工推荐信
2015/03/24 职场文书