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和ACCESS写聊天室(三)
Oct 09 PHP
php.ini中的php-5.2.0配置指令详解
Mar 27 PHP
php小偷相关截取函数备忘
Nov 28 PHP
php的大小写敏感问题整理
Dec 29 PHP
php在文件指定行中写入代码的方法
May 23 PHP
php获取数组中重复数据的两种方法
Jun 28 PHP
PHP生成plist数据的方法
Jun 16 PHP
Yii2简单实现给表单添加验证码的方法
Jul 18 PHP
PHP Oauth授权和本地加密实现方法
Aug 12 PHP
PHP获取用户客户端真实IP的解决方案
Oct 10 PHP
php将服务端的文件读出来显示在web页面实例
Oct 31 PHP
PHP实现查询手机归属地的方法详解
Apr 28 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类 可以参考学习熟悉下
2009/06/21 PHP
ThinkPHP关联模型操作实例分析
2012/09/23 PHP
PHP实现上传文件并存进数据库的方法
2015/07/16 PHP
CI(CodeIgniter)模型用法实例分析
2016/01/20 PHP
php排序算法实例分析
2016/10/17 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
javascript xml为数据源的下拉框控件
2009/07/07 Javascript
javascript 验证日期的函数
2010/03/18 Javascript
JS获取select的value和text值的简单实例
2014/02/26 Javascript
jQuery实现点击小图显示大图代码分享
2015/08/25 Javascript
jQuery Validate验证框架经典大全
2015/09/23 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
详解在 Angular 项目中添加 clean-blog 模板
2017/07/04 Javascript
浅谈Angular文字折叠展开组件的原理分析
2017/11/24 Javascript
node.js +mongdb实现登录功能
2020/06/18 Javascript
[45:14]Optic vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
[03:00]DOTA2-DPC中国联赛1月18日Recap集锦
2021/03/11 DOTA
跟老齐学Python之编写类之二方法
2014/10/11 Python
用Python实现一个简单的能够上传下载的HTTP服务器
2015/05/05 Python
python读取文件名称生成list的方法
2018/04/27 Python
Python实现二维曲线拟合的方法
2018/12/29 Python
python3图片文件批量重命名处理
2019/10/31 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
2020/01/20 Python
html5中去掉input type date默认样式的方法
2018/09/06 HTML / CSS
英国领先的珍珠首饰品牌:Orchira
2016/09/11 全球购物
大学生简历中个人的自我评价
2013/10/06 职场文书
物流合作计划书
2014/01/10 职场文书
环保倡议书500字
2014/05/15 职场文书
访谈节目策划方案
2014/05/15 职场文书
小学运动会报道稿
2014/10/04 职场文书
2015年医务人员医德医风自我评价
2015/03/03 职场文书
答谢酒会主持词
2015/07/02 职场文书
Oracle笔记
2021/04/05 Oracle
CSS中妙用 drop-shadow 实现线条光影效果
2021/11/11 HTML / CSS
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
2021/11/11 Python
python如何查找列表中元素的位置
2022/05/30 Python