18日去日月潭和九族文化村玩了一天。玩本身就很累了,加之又是都是玩大型娱乐设备,诸如云霄飞车、太空船、UFO、海盗船、加勒比海盗等。总之,一句话就是到今天都没恢复过来。不过今天还是死活完成了一些任务啦。哈。
下面是关于PHP产生随机图片的类,直接copy就可以用的。
<?php /** * 生成验证码的类 * */ class code{ var $str; //随机生成的字符串 var $width = 85; //验证码图片的宽度 var $height = 30; //验证码图片的高度 /** * 构造函数 * * @param String $width 验证码图片的宽度 * @param String $height 验证码图片的高度 * @param String $size 字符个数 */ function code($width = 50,$height = 25,$size = 4){ $this->str = $this->random($size); $this->width = $width; $this->height = $height; //session_register("code"); $_SESSION["code"] = $this->str; } /** * 随即生成字符的函数 * * @param int $len 要生成的字符的个数 * @return 生成的字符串 */ function random($len){ $srcstr="abcdefghijklmnopqrstuvwxyz0123456789"; mt_srand(); $strs=""; for($i=0;$i<$len;$i++){ $strs.=$srcstr[mt_rand(0,35)]; } return $strs; } /** * 生成验证码并输出 * */#7CD3E7 function genimg(){ @header("Content-Type:image/png"); $im=imagecreate($this->width,$this->height); //背景色 $back=imagecolorallocate($im,0xFF,0xFF,0xFF); //模糊点颜色 $pix=imagecolorallocate($im,187,230,247); //字体色 $font=imagecolorallocate($im,41,163,238); //绘模糊作用的点 mt_srand(); for($i=0;$i<1000;$i++){ imagesetpixel($im,mt_rand(0,$this->width),mt_rand(0,$this->height),$pix); } //写字,选择ComicSansMS字体 //imagettftext($im,20,0,3,25,$font,"comic.ttf",$this->str); //$x = mt_rand(1,20); //$y = mt_rand(0,18); imagestring($im, 8, 10, 5,$this->str, $font); imagerectangle($im,0,0,$this->width-1,$this->height-1,$font); imagepng($im,"imcode.png"); imagedestroy($im); Header("Content-type: text/html"); } } ?>
使用的例子如下:
首先在使用的PHP文件里引用以上类,然后new出对象。
$s = new code();
$s->genimg();
再在需要验证码的地方
<IMG SRC='<?php echo 'imcode.png?'.time();?>' WIDTH='50' HEIGHT='25' BORDER=0 ALT=''>
就OK了。