首页 > php图像处理 > php 生成验证码程序

php 生成验证码程序

<?php
$consts = 'bcdfghjkmnpqrstwxyz';
$vowels = 'aei23456789';
for ($x = 0; $x < 6; $x++) {
    $const[$x] = substr($consts, mt_rand(0, strlen($consts) - 1) , 1);
    $vow[$x] = substr($vowels, mt_rand(0, strlen($vowels) - 1) , 1);
}
$radomstring = $const[0] . $vow[0] . $const[2] . $const[1] . $vow[1] . $const[3] . $vow[3] . $const[4];
$_SESSION['checkcode'] = $string = substr($radomstring, 0, 4); //only display 4 str
 / tupimage, thefirstnumberisthewidth and thesecondistheheight $imageX = strlen($radomstring) * 5.5; //the image width
$imageY = 20; //the image height
$im = imagecreatetruecolor($imageX, $imageY);
//creates two variables to store color
$background = imagecolorallocate($im, rand(180, 250) , rand(180, 250) , rand(180, 250));
$foregroundArr = array(
    imagecolorallocate($im, rand(0, 20) , rand(0, 20) , rand(0, 20)) ,
    imagecolorallocate($im, rand(0, 20) , rand(0, 10) , rand(245, 255)) ,
    imagecolorallocate($im, rand(245, 255) , rand(0, 20) , rand(0, 10)) ,
    imagecolorallocate($im, rand(245, 255) , rand(0, 20) , rand(245, 255))
);
$foreground2 = imagecolorallocatealpha($im, rand(20, 100) , rand(20, 100) , rand(20, 100) , 80);
$middleground = imagecolorallocate($im, rand(200, 160) , rand(200, 160) , rand(200, 160));
$middleground2 = imagecolorallocatealpha($im, rand(180, 140) , rand(180, 140) , rand(180, 140) , 80);
//fill image with bgcolor
imagefill($im, 0, 0, imagecolorallocate($im, 250, 253, 254));
//writes string
imagestring($im, 5, 3, floor(rand(0, 5)) - 1, $string[0], $foregroundArr[rand(0, 3) ]);
imagestring($im, 5, 13, floor(rand(0, 5)) - 1, $string[1], $foregroundArr[rand(0, 3) ]);
imagestring($im, 5, 23, floor(rand(0, 5)) - 1, $string[2], $foregroundArr[rand(0, 3) ]);
imagestring($im, 5, 33, floor(rand(0, 5)) - 1, $string[3], $foregroundArr[rand(0, 3) ]);
for ($i = 0; $i < strlen($string); $i++) {
    if (mt_rand(0, ord(substr($string, $i, 1))) % 2 == 0) {
        $string{$i} = ' ';
    }
}
imagestring($im, 2, 2, 0, $string, $foreground2);
//strikethrough
$border = imagecolorallocate($im, 133, 153, 193);
//imagefilledrectangle($aimg, 0, 0, $x_size - 1, $y_size - 1, $back);
imagerectangle($im, 0, 0, $imageX - 1, $imageY - 1, $border);
$pointcol = imagecolorallocate($im, rand(0, 255) , rand(0, 255) , rand(0, 255));
for ($i = 0; $i < 20; $i++) {
    imagesetpixel($im, rand(2, $imageX - 2) , rand(2, $imageX - 2) , $pointcol);
}
//rotate
$middleground = imagecolorallocatealpha($im, rand(160, 200) , rand(160, 200) , rand(160, 200) , 80);
//random shapes
for ($x = 0; $x < 15; $x++) {
    if (mt_rand(0, $x) % 2 == 0) {
        imageline($im, rand(0, 120) , rand(0, 120) , rand(0, 120) , rand(0, 120) , $middleground);
        imageellipse($im, rand(0, 120) , rand(0, 120) , rand(0, 120) , rand(0, 120) , $middleground2);
    } else {
        imageline($im, rand(0, 120) , rand(0, 120) , rand(0, 120) , rand(0, 120) , $middleground2);
        imageellipse($im, rand(0, 120) , rand(0, 120) , rand(0, 120) , rand(0, 120) , $middleground);
    }
} //开源代码phprm.com
//output to browser
header("content-type:image/pngrn");
imagepng($im);
imagedestroy($im);


本文链接:http://www.phprm.com/tuxiang/fs4507.html

收藏随意^^请保留教程地址.

标签:php生成验证码 php验证码程序

相关文章

发表留言