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读注册表
Oct 09 PHP
PHP 和 MySQL 开发的 8 个技巧
Oct 09 PHP
php的memcached客户端memcached
Jun 14 PHP
如何使用Linux的Crontab定时执行PHP脚本的方法
Dec 19 PHP
PHP中数组定义的几种方法
Sep 01 PHP
PHP中的插件机制原理和实例
Jul 08 PHP
PHP中上传多个文件的表单设计例子
Nov 19 PHP
浅析php创建者模式
Nov 25 PHP
PDO防注入原理分析以及注意事项
Feb 25 PHP
ThinkPHP实现递归无级分类――代码少
Jul 29 PHP
在WordPress中使用wp-cron插件来设置定时任务
Dec 10 PHP
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
May 13 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+SQLite存储方案
2010/09/04 PHP
fgetcvs在linux的问题
2012/01/15 PHP
Display SQL Server Login Mode
2007/06/21 Javascript
ExtJS Window 最小化的一种方法
2009/11/18 Javascript
关于jQuery参考实例 1.0 jQuery的哲学
2013/04/07 Javascript
含有CKEditor的表单如何提交
2014/01/09 Javascript
使用jquery写个更改表格行顺序的小功能
2014/04/29 Javascript
JS实现表格数据各种搜索功能的方法
2015/03/03 Javascript
javascript实现可拖动变色并关闭层窗口实例
2015/05/15 Javascript
实例讲解避免javascript冲突的方法
2016/01/03 Javascript
Bootstrap每天必学之按钮(Button)插件
2016/04/25 Javascript
浅谈Javascript数据属性与访问器属性
2016/07/26 Javascript
AngularJS基础 ng-value 指令简单示例
2016/08/03 Javascript
jQuery实现图片轮播效果代码
2016/09/27 Javascript
vue计算属性+vue中class与style绑定(推荐)
2020/03/30 Javascript
javascript+css实现俄罗斯方块小游戏
2020/06/28 Javascript
python导出chrome书签到markdown文件的实例代码
2017/12/27 Python
Python如何发布程序的详细教程
2018/10/09 Python
如何利用Boost.Python实现Python C/C++混合编程详解
2018/11/08 Python
Python数据类型之Number数字操作实例详解
2019/05/08 Python
python实时检测键盘输入函数的示例
2019/07/17 Python
Python实现使用dir获取类的方法列表
2019/12/24 Python
python logging通过json文件配置的步骤
2020/04/27 Python
HTML5实现QQ聊天气泡效果
2017/06/26 HTML / CSS
Otticanet澳大利亚:最顶尖的世界名牌眼镜, 能得到打折季的价格
2018/08/23 全球购物
斯洛伐克电子产品购物网站:DATART
2020/04/05 全球购物
党章学习思想汇报
2014/01/14 职场文书
保洁公司服务承诺书
2014/05/28 职场文书
大专生求职信
2014/06/29 职场文书
公司门卫岗位职责范本
2014/07/08 职场文书
公安纪律作风整顿心得体会
2016/01/23 职场文书
2016年优秀少先队辅导员事迹材料
2016/02/26 职场文书
火锅店的开业营销方案范本!
2019/07/05 职场文书
PyQt5结合QtDesigner实现文本框读写操作
2021/06/11 Python
浅谈TypeScript 索引签名的理解
2021/10/16 Javascript
教你使用Ubuntu搭建DNS服务器
2022/09/23 Servers