国强极客
有问题请加微信:guoqiang7585
国强极客

项目:php显示随机验证码

项目:php显示随机验证码
<?php
//实例:图像验证码
/*
    (1)产生随机4位字符串
    (2)创建一个空的画布,绘制带填充的矩形
    (3)分配颜色:背景色、文字颜色
    (4)往图像上写入TTF字体串:imagettftext()
    (5)输出图像,并销毁图像
 */
//(1)产生随机4位的字符串
$arr1 = array_merge(range('A','Z'),range(0,9),range('a','z'));
shuffle($arr1); //打乱数组
shuffle($arr1); //打乱数组
$arr2 = array_rand($arr1,4); //从数组中随机取4位下标
//循环$arr2,取出指定下标对应的元素的值
$str = "";
foreach($arr2 as $index)
{
    $str .= $arr1[$index];
}

//(2)创建一个空的画布
$width = 120;
$height = 40;
$img = imagecreatetruecolor($width,$height);

//(3)绘制带填充的矩形
$color1 = imagecolorallocate($img,mt_rand(0,255),mt_rand(0,200),mt_rand(100,255));
imagefilledrectangle($img,0,0,$width,$height,$color1);

//(4)写入一行TTF的字符串:将验证码字符串,写入到图像上
$fontfile = "e:/itcast/lesson/PHP4/images/msyh.ttf";
$color3 = imagecolorallocate($img,mt_rand(0,255),mt_rand(0,200),mt_rand(100,255));
imagettftext($img,28,0,16,32,$color3,$fontfile,$str);

//(5)绘制像素点
for($i=1;$i<=200;$i++)
{
    $color2 = imagecolorallocate($img,mt_rand(0,255),mt_rand(0,200),mt_rand(100,255));
    imagesetpixel($img,mt_rand(0,$width),mt_rand(0,$height),$color2);
}

//(6)输出图像到浏览器
header("content-type:image/png");
imagepng($img);

//(7)销毁图像
imagedestroy($img);
赞赏
对内容有疑问,请加我微信:guoqiang7585

国强极客

文章作者

博客站长,有问题请加微信【guoqiang7585】。

国强极客

项目:php显示随机验证码
<?php //实例:图像验证码 /* (1)产生随机4位字符串 (2)创建一个空的画布,绘制带填充的矩形 (3)分配颜色:背景色、文字颜色 (4)往图像上写入TTF字体串:imagettftext…
扫描二维码继续阅读
2019-08-03