一个PHP验证码类代码分享(已封装成类)


Posted in PHP onJuly 17, 2011
<?php 
session_start(); 
Header("Content-type: image/gif"); 
class SecurityCode 
{ 
private $codes = ''; 
function __construct() 
{ 
$code = '0-1-2-3-4-5-6-7-8-9-A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z'; 
$codeArray = explode('-',$code); 
shuffle($codeArray); 
$this->codes = implode('',array_slice($codeArray,0,4)); 
} 
public function CreateImg() 
{ 
$_SESSION['check_pic'] = $this->codes; 
$img = imagecreate(70,25); 
imagecolorallocate($img,222,222,222); 
$testcolor1 = imagecolorallocate($img,255,0,0); 
$testcolor2 = imagecolorallocate($img,51,51,51); 
$testcolor3 = imagecolorallocate($img,0,0,255); 
$testcolor4 = imagecolorallocate($img,255,0,255); 
for ($i = 0; $i < 4; $i++) 
{ 
imagestring($img,rand(5,6),8 + $i * 15,rand(2,8),$this->codes[$i],rand(1,4)); 
} 
imagegif($img); 
} 
} 
$code = new SecurityCode(); 
$code->CreateImg(); 
$code = NULL; 
?>

封装成类之后,加入了构造函数,使用起来也方便些。你也可以继续完善下这个验证码类,比如加入析构函数,如何更节省内存等等。
PHP 相关文章推荐
改变Apache端口等配置修改方法
Jun 05 PHP
PHP设计模式之装饰者模式
Feb 29 PHP
php-fpm配置详解
Feb 12 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
Aug 05 PHP
PHP基本语法总结
Sep 06 PHP
php新浪微博登录接口用法实例
Dec 23 PHP
php遍历目录方法小结
Mar 10 PHP
Thinkphp模板标签if和eq的区别和比较实例分析
Jul 01 PHP
Symfony学习十分钟入门经典教程
Feb 03 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
Aug 31 PHP
PHP观察者模式原理与简单实现方法示例
Aug 25 PHP
ThinkPHP5.1框架页面跳转及修改跳转页面模版示例
May 06 PHP
PHP 验证码的实现代码
Jul 17 #PHP
PHP中用hash实现的数组
Jul 17 #PHP
PHP中文分词的简单实现代码分享
Jul 17 #PHP
PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
Jul 17 #PHP
从手册去理解分析PHP session机制
Jul 17 #PHP
php数组的一些常见操作汇总
Jul 17 #PHP
PHP在特殊字符前加斜杠的实现代码
Jul 17 #PHP
You might like
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
2014/06/30 PHP
2014年最新推荐的10款 PHP 开发框架
2014/08/01 PHP
ThinkPHP静态缓存简单配置和使用方法详解
2016/03/23 PHP
PHP开发API接口签名生成及验证操作示例
2020/05/27 PHP
PHP文件操作简单介绍及函数汇总
2020/12/11 PHP
Textbox控件注册回车事件及触发按钮提交事件具体实现
2013/03/04 Javascript
js动态设置div的值下例子
2013/10/29 Javascript
JavaScript实现查找字符串中第一个不重复的字符
2014/12/29 Javascript
jQuery实现多级联动下拉列表查询框
2016/01/18 Javascript
js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)
2016/01/19 Javascript
Angular的$http与$location
2016/12/26 Javascript
浅析JS中常用类型转换及运算符表达式
2017/07/23 Javascript
原生JavaScript实现的简单放大镜效果示例
2018/02/07 Javascript
Bootstrap模态对话框用法简单示例
2018/08/31 Javascript
单页面vue引入百度统计的使用方法示例详解
2018/10/13 Javascript
es6函数之严格模式用法实例分析
2020/03/17 Javascript
Vue 组件注册全解析
2020/12/17 Vue.js
[42:20]2014 DOTA2华西杯精英邀请赛5 24 DK VS NewBee
2014/05/25 DOTA
[42:32]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第二局
2016/02/27 DOTA
python操作字典类型的常用方法(推荐)
2016/05/16 Python
详谈python read readline readlines的区别
2017/09/22 Python
Python回文字符串及回文数字判定功能示例
2018/03/20 Python
pygame游戏之旅 添加键盘按键的方法
2018/11/20 Python
在Python 中同一个类两个函数间变量的调用方法
2019/01/31 Python
Python/Django后端使用PIL Image生成头像缩略图
2019/04/30 Python
关于python导入模块import与常见的模块详解
2019/08/28 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
2020/01/16 Python
Ibatis如何使用动态表名
2015/07/12 面试题
迎新晚会邀请函
2014/02/01 职场文书
初中班主任寄语
2014/04/04 职场文书
软件售后服务承诺书
2014/05/21 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
实习证明格式范文
2014/10/14 职场文书
小学生毕业评语
2014/12/26 职场文书
党员反腐倡廉学习心得体会
2015/08/15 职场文书
python 中[0]*2与0*2的区别说明
2021/05/10 Python