php随机验证码生成器
<?php
verify();
function verify($width = 100, $height = 40, $num = 5, $charType = 3)
{
$image = imagecreatetruecolor($width, $height);
$string = getRandomStr($charType, $num);
for ($i = 0; $i < $num; $i++) {
$x = floor($width / $num) * $i;
$y = mt_rand(10, $height - 20);
imagechar($image, 5, $x, $y, $string[$i], creColor($image, 1));
}
for ($i = 0; $i < $num; $i++) {
imagearc($image, mt_rand(10, $width), mt_rand(10, $height), mt_rand(10, $width),
mt_rand(10, $height), mt_rand(0, 10), mt_rand(0, 270), creColor($image, 2));
}
for ($i = 0; $i < 50; $i++) {
imagesetpixel($image, mt_rand(0, $width), mt_rand(0, $height), creColor($image, 2));
}
header("Content-type:image/png");
imagepng($image);
imagedestroy($image);
}
function getRandomStr($type, $num)
{
$string = null;
switch ($type) {
case 1:
$str = '0123456789';
$string = substr(str_shuffle($str), 0, $num);
break;
case 2:
$array = range('a', 'z');
shuffle($array);
$tmp = array_slice($array, 0, $num);
$string = join('', $tmp);
break;
case 3:
$str = join(range(0, 9)) . join(range('a', 'z')) . join(range('A', 'Z'));
$string = substr(str_shuffle($str), 0, $num);
break;
}
return $string;
}
function creColor($image, $colorType)
{
switch ($colorType) {
case 1:
return imagecolorallocate($image, mt_rand(130, 255), mt_rand(130, 255), mt_rand(130, 255));
break;
case 2:
return imagecolorallocate($image, mt_rand(0, 120), mt_rand(0, 120), mt_rand(0, 120));
break;
}
}