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实现读取和编写XML DOM代码
Apr 07 PHP
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
Jun 11 PHP
PHP下利用header()函数设置浏览器缓存的代码
Sep 01 PHP
简单的php写入数据库类代码分享
Jul 26 PHP
PHP中数组合并的两种方法及区别介绍
Sep 14 PHP
PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
Feb 14 PHP
PHP 正则表达式小结
Feb 12 PHP
php eval函数一句话木马代码
May 21 PHP
php简单计算页面加载时间的方法
Jun 19 PHP
php获取今日开始时间和结束时间的方法
Feb 27 PHP
Django中的cookie与session操作实例代码
Aug 17 PHP
php的命名空间与自动加载实现方法
Aug 25 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
在PHP3中实现SESSION的功能(三)
2006/10/09 PHP
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
2010/03/21 PHP
HR vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
javascript 写类方式之七
2009/07/05 Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
2015/03/27 Javascript
在JavaScript中使用对数Math.log()方法的教程
2015/06/15 Javascript
jquery实现图片上传之前预览的方法
2015/07/11 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
2015/09/07 Javascript
常用原生JS兼容性写法汇总
2016/04/27 Javascript
jQuery使用animate实现ul列表项相互飘动效果示例
2016/09/16 Javascript
jQuery UI实现动画效果代码分享
2018/08/19 jQuery
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
2018/10/26 jQuery
vue实现动态显示与隐藏底部导航的方法分析
2019/02/11 Javascript
Vue实现数据表格合并列rowspan效果
2020/11/30 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
2020/11/16 Javascript
[41:52]2018DOTA2亚洲邀请赛3月29日小组赛B组Effect VS Secret
2018/03/30 DOTA
Python基于动态规划算法解决01背包问题实例
2017/12/06 Python
Python补齐字符串长度的实例
2018/11/15 Python
python 切换root 执行命令的方法
2019/01/19 Python
Python HTML解析器BeautifulSoup用法实例详解【爬虫解析器】
2019/04/05 Python
浅析使用Python搭建http服务器
2019/10/27 Python
python+OpenCV实现车牌号码识别
2019/11/08 Python
解决Python数据可视化中文部分显示方块问题
2020/05/16 Python
在python image 中实现安装中文字体
2020/05/16 Python
python 逆向爬虫正确调用 JAR 加密逻辑
2021/01/12 Python
一款利用css3的鼠标经过动画显示详情特效的实例教程
2014/12/29 HTML / CSS
adidas美国官网:adidas US
2016/09/21 全球购物
车间班组长的职责
2013/12/13 职场文书
校庆接待方案
2014/03/18 职场文书
公司离职证明范本(汇总)
2014/09/10 职场文书
微笑面对生活演讲稿
2014/09/23 职场文书
副总经理岗位职责
2015/02/02 职场文书
考博导师推荐信范文
2015/03/27 职场文书
九年级历史教学反思
2016/02/19 职场文书
阿里云服务器搭建Php+Apache运行环境的详细过程
2021/05/15 PHP
Vue中Object.assign清空数据报错的解决方案
2022/03/03 Vue.js