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 相关文章推荐
文件上传类
Oct 09 PHP
php,ajax实现分页
Mar 27 PHP
php 魔术函数使用说明
Feb 21 PHP
mysql总结之explain
Feb 27 PHP
超小PHP小马小结(方便查找后门的朋友)
May 05 PHP
解析php扩展php_curl.dll不加载的解决方法
Jun 26 PHP
国产PHP开发框架myqee新手快速入门教程
Jul 14 PHP
php支付宝手机网页支付类实例
Mar 04 PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
May 13 PHP
Linux系统递归生成目录中文件的md5的方法
Jun 29 PHP
Yii快速入门经典教程
Dec 28 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
Dec 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
《Re:从零开始的异世界生活 冰结之绊》
2020/04/09 日漫
深入php函数file_get_contents超时处理的方法详解
2013/06/03 PHP
PHP之正则表达式捕获组与非捕获组(详解)
2015/07/29 PHP
浅析php静态方法与非静态方法的用法区别
2016/05/17 PHP
微信支付开发维权通知实例
2016/07/12 PHP
PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
2019/02/15 PHP
js replace正则表达式应用案例讲解
2013/01/17 Javascript
javascript获取鼠标点击元素对象(示例代码)
2013/12/20 Javascript
jQuery focus和blur事件的应用详解
2014/01/26 Javascript
28个常用JavaScript方法集锦
2015/01/14 Javascript
jQuery绑定事件-多种实现方式总结
2016/05/09 Javascript
jQuery查看选中对象HTML代码的方法
2016/06/17 Javascript
jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题
2016/08/15 Javascript
原生JS实现简单的倒计时功能示例
2018/08/30 Javascript
webpack4 升级迁移的实现
2018/09/12 Javascript
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
2018/12/10 jQuery
js实现鼠标拖拽缩放div实例代码
2019/03/25 Javascript
vue实现购物车案例
2020/05/30 Javascript
举例讲解Python面相对象编程中对象的属性与类的方法
2016/01/19 Python
Python入门_浅谈逻辑判断与运算符
2017/05/16 Python
使用Python写一个小游戏
2018/04/02 Python
python线程池threadpool实现篇
2018/04/27 Python
Python类和对象的定义与实际应用案例分析
2018/12/27 Python
python随机在一张图像上截取任意大小图片的方法
2019/01/24 Python
Python3爬虫带上cookie的实例代码
2020/07/28 Python
浅析Python 责任链设计模式
2020/09/11 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
2021/01/12 Python
浅谈HTML5 FileReader分布读取文件以及其方法简介
2017/11/09 HTML / CSS
澳大利亚领先的在线葡萄酒零售商:Get Wines Direct
2018/03/27 全球购物
美国运动鞋类和服装零售连锁店:Shoe Palace
2019/08/13 全球购物
C,C++的几个面试题小集
2013/07/13 面试题
初入社会应届生求职信
2013/11/18 职场文书
职业规划书如何设计?
2014/01/09 职场文书
工伤事故证明
2014/10/20 职场文书
群众路线教育实践活动学习笔记
2014/11/05 职场文书
自主招生自荐信格式
2015/03/04 职场文书