php实现的验证码文件类实例

时间:2021-05-26

本文实例讲述了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程序设计有所帮助。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章