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 相关文章推荐
浅析Apache中RewriteCond规则参数的详细介绍
Jun 30 PHP
php截取字符串函数分享
Feb 02 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
Mar 18 PHP
php删除指定目录的方法
Apr 03 PHP
php中JSON的使用方法
Apr 30 PHP
PHP自毁程序(慎用)
Jul 09 PHP
Zend Framework实现多文件上传功能实例
Mar 21 PHP
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
Apr 30 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
Nov 05 PHP
PHP数组相加操作及与array_merge的区别浅析
Nov 26 PHP
PHP异常处理定义与使用方法分析
Jul 25 PHP
PHP JWT初识及其简单示例
Oct 10 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中usort在值相同时改变原始位置问题的解决方法
2011/11/27 PHP
PHP中如何定义和使用常量
2013/02/28 PHP
php class中self,parent,this的区别以及实例介绍
2013/04/24 PHP
对PHP语言认识上需要避免的10大误区
2014/06/12 PHP
php通过隐藏表单控件获取到前两个页面的url
2014/09/09 PHP
百度工程师讲PHP函数的实现原理及性能分析(三)
2015/05/13 PHP
基于PHP实现简单的随机抽奖小程序
2016/01/05 PHP
PHP5中使用mysqli的prepare操作数据库的介绍
2019/03/18 PHP
HTTP状态代码以及定义(解释)
2007/02/02 Javascript
用JavaScript实现类似于ListBox功能示例代码
2014/03/09 Javascript
document.compatMode的CSS1compat使用介绍
2014/04/03 Javascript
node.js中的http.request.end方法使用说明
2014/12/10 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
2015/08/06 Javascript
Jquery 自定义事件实现发布/订阅的简单实例
2016/06/12 Javascript
浅谈js对象的创建和对6种继承模式的理解和遐想
2016/10/16 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
2016/11/24 Javascript
使用Bootstrap + Vue.js实现添加删除数据示例
2017/02/27 Javascript
快速解决Vue项目在IE浏览器中显示空白的问题
2018/09/04 Javascript
jQuery 筛选器简单操作示例
2019/10/02 jQuery
jQuery实现B2B网站后台管理系统侧导航
2020/07/08 jQuery
记一次vue跨域的解决
2020/10/21 Javascript
python获取指定网页上所有超链接的方法
2015/04/04 Python
Python爬取国外天气预报网站的方法
2015/07/10 Python
详解python的sorted函数对字典按key排序和按value排序
2018/08/10 Python
Python标准库shutil用法实例详解
2018/08/13 Python
Python基础知识点 初识Python.md
2019/05/14 Python
python进程和线程用法知识点总结
2019/05/28 Python
Python+Appium实现自动化测试的使用步骤
2020/03/24 Python
使用CSS3的背景渐变Text Gradient 创建文字颜色渐变
2014/08/19 HTML / CSS
html5 canvas-2.用canvas制作一个猜字母的小游戏
2013/01/07 HTML / CSS
洛杉矶生活休闲而精致的基础品牌:Mika Jaymes
2018/01/07 全球购物
C语言基础笔试题
2013/04/27 面试题
公司领导班子群众路线四风问题对照检查材料
2014/10/02 职场文书
2014年路政工作总结
2014/12/10 职场文书
高质量“欢迎词”
2019/04/03 职场文书
MySQL之高可用集群部署及故障切换实现
2021/04/22 MySQL