PHP语法如何生成验证码?
验证码(CAPTCHA)是“完全自动公开区分计算机和人类的图灵测试”的缩写。它是一种常见的在线验证机制,用于确保用户是真实的人而不是机器人。
验证码通常由图像或声音组成,并要求用户输入正确答案以证明自己是真实用户。那么PHP语法如何生成验证码?下面编程教程网小编给大家简单介绍一下具体实现语法!
php生成验证码代码
<?php
session_start();
header("Content-type: image/png");
$width = 100;
$height = 40;
$length = 4;
// 生成验证码字符串
$chars = "0123456789";
$str = "";
for ($i = 0; $i < $length; $i++) {
$str .= substr($chars, mt_rand(0, strlen($chars)-1), 1);
}
// 保存验证码到Session
$_SESSION["captcha"] = $str;
// 创建图像对象并绘制背景
$im = imagecreatetruecolor($width, $height);
$bgColor = imagecolorallocate($im, 242, 242, 242);
imagefill($im, 0, 0, $bgColor);
// 添加干扰线
$lineColor = imagecolorallocate($im, 200, 200, 200);
for ($i = 0; $i < 6; $i++) {
imageline($im, 0, mt_rand(0, $height), $width, mt_rand(0, $height), $lineColor);
}
// 添加噪点
$pixelColor = imagecolorallocate($im, 0, 0, 0);
for ($i = 0; $i < 50; $i++) {
imagesetpixel($im, mt_rand(0, $width), mt_rand(0, $height), $pixelColor);
}
// 绘制验证码字符串
$font = 5;
$fontColor = imagecolorallocate($im, 0, 0, 0);
$fontWidth = imagefontwidth($font);
$fontHeight = imagefontheight($font);
$x = ($width - $fontWidth * $length) / 2;
$y = ($height - $fontHeight) / 2;
for ($i = 0; $i < $length; $i++) {
$char = substr($str, $i, 1);
imagechar($im, $font, $x + $fontWidth * $i, $y, $char, $fontColor);
}
// 输出图像
imagepng($im);
imagedestroy($im);
?>
以上是编程学习网小编为您介绍的“PHP语法如何生成验证码?”的全面内容,想了解更多关于 php入门 内容,请继续关注编程基础学习网。