直接上代码
1.生成随机数函数
<?php function buildRandomString($type=1,$length=4){ if($type==1){ $chars=join("", range(0,9)); }else if($type==2){ $chars=join("",array_merge(range("a","z"),range("A","Z"))); }else if($type==3){ $chars=join("",array_merge(range("a","z"),range("A","Z"),range(0,9))); } if($length>strlen($chars)){ exit("字符串长度不够"); } //随意打乱字符串 $chars=str_shuffle($chars); return substr($chars, 0,$length); }
2.传入随机数,生成相应的验证码
<?php require_once 'string.func.php'; // 通过GD库做验证码 function verifyImage($type = 3, $length = 4, $sess_name = "verify") { // 宽 $width = 80; // 长 $height = 20; // 创建画布 $image = imagecreatetruecolor ( $width, $height ); // 画布颜色 所属画布 $white = imagecolorallocate ( $image, 255, 255, 255 ); // 画笔颜色 $black = imagecolorallocate ( $image, 0, 0, 0 ); // 画一个矩形填充画布 imagefilledrectangle ( $image, 1, 1, $width - 2, $height - 2, $white ); $chars = buildRandomString ( $type, $length ); $_SESSION [$sess_name] = $chars; $fontfiles = array ( "FZLTCXHJW.TTF", "MSYH.TTF", "MSYHBD.TTF", "SIMFANG.TTF", "SIMHEI.TTF", "SIMKAI.TTF" ); for($i = 0; $i < $length; $i ++) { // mt_rand 产生随机数函数 $size = mt_rand ( 14, 18 ); $angle = mt_rand ( - 15, 15 ); $x = 5 + $i * $size; $y = mt_rand ( 18, 22 ); $color = imagecolorallocate ( $image, mt_rand ( 50, 200 ), mt_rand ( 50, 200 ), mt_rand ( 50, 200 ) ); $fontfile = "../fonts/" . $fontfiles [mt_rand ( 0, count ( $fontfiles ) - 1 )]; $text = substr ( $chars, $i, 1 ); imagettftext ( $image, $size, $angle, $x, $y, $color, $fontfile, $text ); } // 小点点做干扰 for($i = 0; $i < 20; $i ++) { $color = imagecolorallocate ( $image, mt_rand ( 50, 200 ), mt_rand ( 50, 200 ), mt_rand ( 50, 200 ) ); imagesetpixel ( $image, mt_rand ( 0, $width - 1 ), mt_rand ( 0, $height - 1 ), $color ); } // 线线做干扰 for($i = 0; $i < 3; $i ++) { $color = imagecolorallocate ( $image, mt_rand ( 50, 200 ), mt_rand ( 50, 200 ), mt_rand ( 50, 200 ) ); imageline ( $image, mt_rand ( 0, $width - 1 ), mt_rand ( 0, $height - 1 ), mt_rand ( 0, $width - 1 ), mt_rand ( 0, $height - 1 ), $color ); } // 告诉浏览器显示什么资源 header ( "content-type:image/gif" ); // 显示画布 imagegif ( $image ); // 销毁画布资源 imagedestroy ( $image ); }