直接上代码
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 );
}