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 防止单引号,双引号在接受页面转义
Jul 10 PHP
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
Mar 19 PHP
php中批量替换文件名的实现代码
Jul 20 PHP
PHP中将字符串转化为整数(int) intval() printf() 性能测试
Mar 20 PHP
Yii配置文件用法详解
Dec 04 PHP
windows下配置php5.5开发环境及开发扩展
Dec 25 PHP
判断、添加和删除WordPress置顶文章的相关PHP函数小结
Dec 10 PHP
浅析Laravel5中队列的配置及使用
Aug 04 PHP
PHP使用curl函数发送Post请求的注意事项
Nov 26 PHP
Yii2中简单的场景使用介绍
Jun 02 PHP
基于swoole实现多人聊天室
Jun 14 PHP
Laravel5框架添加自定义辅助函数的方法
Aug 01 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
swfupload 多文件上传实现代码
2008/08/27 PHP
解析Ubuntu下crontab命令的用法
2013/06/24 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
2014/06/19 PHP
PHP数组编码gbk与utf8互相转换的两种方法
2016/09/01 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
PHP数组遍历的几种常见方式总结
2019/02/15 PHP
解决laravel 出现ajax请求419(unknown status)的问题
2019/09/03 PHP
JavaScript的9个陷阱及评点分析
2008/05/16 Javascript
把html页面的部分内容保存成新的html文件的jquery代码
2009/11/12 Javascript
JQuery跳出each循环的方法
2015/04/16 Javascript
JavaScript驾驭网页-DOM
2016/03/24 Javascript
JS实现颜色动态淡化效果
2017/03/06 Javascript
详解React中的组件通信问题
2017/07/31 Javascript
js模块加载方式浅析
2017/08/12 Javascript
解决js ajax同步请求造成浏览器假死的问题
2018/01/18 Javascript
vue项目中使用fetch的实现方法
2019/04/25 Javascript
JavaScript进阶(一)变量声明提升实例分析
2020/05/09 Javascript
如何在node环境实现“get数据解析”代码实例
2020/07/03 Javascript
jQuery实现动态加载瀑布流
2020/09/01 jQuery
基于Python如何使用AIML搭建聊天机器人
2016/01/27 Python
Python中random模块生成随机数详解
2016/03/10 Python
Python中列表、字典、元组数据结构的简单学习笔记
2016/03/20 Python
Python读取文件内容的三种常用方式及效率比较
2017/10/07 Python
Django原生sql也能使用Paginator分页的示例代码
2017/11/15 Python
pycharm激活码快速激活及使用步骤
2020/03/12 Python
解决json中ensure_ascii=False的问题
2020/04/03 Python
PyCharm MySQL可视化Database配置过程图解
2020/06/09 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
2021/01/29 Python
基于Html5 canvas实现裁剪图片和马赛克功能及又拍云上传图片 功能
2019/07/09 HTML / CSS
app内嵌H5 webview 本地缓存问题的解决
2020/10/19 HTML / CSS
服装厂厂长职责
2013/12/16 职场文书
捐助倡议书范文
2014/04/15 职场文书
《夕阳真美》教学反思
2014/04/27 职场文书
公司活动总结怎么写
2014/06/25 职场文书
夫妻分居协议书范文
2014/11/26 职场文书
php字符串倒叙
2021/04/01 PHP