PHP实现验证码图片
<?php
header("Content-type: image/png");
session_start();
$authnum = '';
$str = 'abcdefghigklmnopqrstuvwxyz1234567890';
$strLength = strlen($str);
for($i=0;$i<=4;$i++)
{
$num = rand(0, $strLength -1);
$authnum .= $str[$num];
}
$_SESSION['authnum'] = $authnum;
srand((double)microtime()*1000000);
$im = imagecreate(200, 100);
$gary = imagecolorallocate($im, 200, 200, 100);
$white = imagecolorallocate($im, 255, 255, 255);
imagefill($im, 10, 5, $gary);
$li = imagecolorallocate($im, 150, 150, 150);
for($i =0;$i<3;$i++)//绘制三条干扰线
{
imageline($im, rand(0, 20), rand(0, 100), rand(180, 200), rand(0, 100), $li);
//起点的x尽量靠左边,y任意,终点尽量靠右边,y任意
}
for($i=0;$i<strlen($_SESSION['authnum']);$i++)//绘制四个字符
{
$strcolor= imagecolorallocate($im, mt_rand(0, 100), mt_rand(50, 150), mt_rand(100, 200));
$fontsize = mt_rand(10, 20);
$x = mt_rand(1,20)+200*$i/4;
$y = mt_rand(1, 50);
imagestring($im, $fontsize, $x, $y, $_SESSION['authnum'][$i], $strcolor);
}
imagepng($im);
imagedestroy($im);
?>
运行效果如图所示: