php实现的验证码文件类实例
本文实例讲述了php实现的验证码文件类。分享给大家供大家参考。具体如下:
<?php /** *@file *@version1.0 *@author网海浪子 *@brief验证码文件类 * */ classCCheckCodeFile { //验证码位数 private$mCheckCodeNum=4; //产生的验证码 private$mCheckCode=''; //验证码的图片 private$mCheckImage=''; //干扰像素 private$mDisturbColor=''; //验证码的图片宽度 private$mCheckImageWidth='80'; //验证码的图片宽度 private$mCheckImageHeight='20'; /** * *@brief输出头 * */ privatefunctionOutFileHeader() { header("Content-type:image/png"); } /** * *@brief产生验证码 * */ privatefunctionCreateCheckCode() { $this->mCheckCode=strtoupper(substr(md5(rand()),0,$this->mCheckCodeNum)); return$this->mCheckCode; } /** * *@brief产生验证码图片 * */ privatefunctionCreateImage() { $this->mCheckImage=@imagecreate($this->mCheckImageWidth,$this->mCheckImageHeight); imagecolorallocate($this->mCheckImage,200,200,200); return$this->mCheckImage; } /** * *@brief设置图片的干扰像素 * */ privatefunctionSetDisturbColor() { 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高 * */ publicfunctionSetCheckImageWH($width,$height) { if($width==''||$height=='')returnfalse; $this->mCheckImageWidth=$width; $this->mCheckImageHeight=$height; returntrue; } /** * *@brief在验证码图片上逐个画上验证码 * */ privatefunctionWriteCheckCodeToImage() { 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输出验证码图片 * */ publicfunctionOutCheckImage() { $this->OutFileHeader(); $this->CreateCheckCode(); $this->CreateImage(); $this->SetDisturbColor(); $this->WriteCheckCodeToImage(); imagepng($this->mCheckImage); imagedestroy($this->mCheckImage); } } $c_check_code_image=newCCheckCodeFile(); //$c_check_code_image->SetCheckImageWH(100,50); //设置显示验证码图片的尺寸 $c_check_code_image->OutCheckImage(); ?>
希望本文所述对大家的php程序设计有所帮助。