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-rpc远程调用
Dec 19 PHP
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
Mar 03 PHP
PHP 日常开发小技巧
Sep 23 PHP
PHP初学者最感迷茫的问题小结
Mar 27 PHP
PHP中文件上传的一个问题
Sep 04 PHP
php下清空字符串中的HTML标签的代码
Sep 06 PHP
windows7下安装php的imagick和imagemagick扩展教程
Jul 04 PHP
PHP中读取文件的8种方法和代码实例
Aug 05 PHP
php文件扩展名判断及获取文件扩展名的N种方法
Sep 12 PHP
PHP简单操作MongoDB的方法(安装及增删改查)
May 26 PHP
利用PHP实现一个简单的用户登记表示例
Apr 25 PHP
php之可变变量的实例详解
Sep 12 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
咖啡与水的关系
2021/03/03 冲泡冲煮
PHP中调用JAVA
2006/10/09 PHP
php+mysqli批量查询多张表数据的方法
2015/01/29 PHP
PHP实现基于3DES算法加密解密字符串示例
2018/08/24 PHP
JavaScript学习笔记之JS函数
2015/01/22 Javascript
在JavaScript中使用NaN值的方法
2015/06/05 Javascript
JavaScript中判断数据类型的方法总结
2016/05/24 Javascript
浅谈JavaScript 数据属性和访问器属性
2016/09/01 Javascript
JQuery实现DIV其他动画效果的简单实例
2016/09/18 Javascript
Angular的$http与$location
2016/12/26 Javascript
如何提高Dom访问速度
2017/01/05 Javascript
JS运动特效之同时运动实现方法分析
2018/01/24 Javascript
JS实现显示当前日期的实例代码
2018/07/03 Javascript
js布局实现单选按钮控件
2020/01/17 Javascript
JavaScript原型继承和原型链原理详解
2020/02/04 Javascript
Javascript实现鼠标移入方向感知
2020/06/24 Javascript
JS+JQuery实现无缝连接轮播图
2020/12/30 jQuery
Python socket网络编程TCP/IP服务器与客户端通信
2017/01/05 Python
Python中的pygal安装和绘制直方图代码分享
2017/12/08 Python
Python文件操作基本流程代码实例
2017/12/11 Python
钉钉群自定义机器人消息Python封装的实例
2019/02/20 Python
python异常处理和日志处理方式
2019/12/24 Python
linux环境下安装python虚拟环境及注意事项
2020/01/07 Python
pytorch 常用线性函数详解
2020/01/15 Python
python+selenium+chromedriver实现爬虫示例代码
2020/04/10 Python
Sport-Thieme荷兰:购买体育用品
2019/08/25 全球购物
介绍下Lucene建立索引的过程
2016/03/02 面试题
安全资料员岗位职责范本
2014/06/28 职场文书
机械专业求职信范文
2014/07/15 职场文书
2014年禁毒工作总结
2014/11/24 职场文书
2014年实验室工作总结
2014/12/03 职场文书
个人创业事迹材料
2014/12/30 职场文书
自信主题班会
2015/08/14 职场文书
2016年寒假学习心得体会
2015/10/09 职场文书
浅谈MySQL之select优化方案
2021/08/07 MySQL
MySQL数据库超时设置配置的方法实例
2021/10/15 MySQL