Heim > Backend-Entwicklung > PHP-Tutorial > php图形图像处理之如何生成验证码?

php图形图像处理之如何生成验证码?

PHPz
Freigeben: 2018-12-18 09:24:13
nach vorne
2353 Leute haben es durchsucht

本篇文章给大家带来的内容是介绍php图形图像处理之如何生成验证码?有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

现在网上越来越离不开验证码了,不知道小伙伴们知不知利用php的GD库就可以生成验证码。

首先介绍几个需要用的函数。

1.imagesetpixel()

这个函数可以进行像素点的绘制,在验证码中,我们称之为“噪点”,简直是一个神器。不知道小伙伴有没有想起来验证码上的点点呢,就是用这个函数生成的。

2.str_shuffle()

利用这个打乱字符串,然后利用substr()截取给定的位数,就可以生成一个随机字符串啦。

实例:

<?php

$img = imagecreatetruecolor(100, 50);
$black = imagecolorallocate($img, 0x00, 0x00, 0x00);
$green = imagecolorallocate($img, 0x00, 0xFF, 0x00);
$white = imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
imagefill($img, 0, 0, $white);
//生成随机的验证码
$code = make(5);
imagestring($img, 5, 10, 10, $code, $black);
//加入噪点干扰
for ($i = 0; $i < 300; $i++) {
    imagesetpixel($img, rand(0, 100), rand(0, 100), $black);
    imagesetpixel($img, rand(0, 100), rand(0, 100), $green);
}
//加入线段干扰
for ($n = 0; $n <= 1; $n++) {
    imageline($img, 0, rand(0, 40), 100, rand(0, 40), $black);
    imageline($img, 0, rand(0, 40), 100, rand(0, 40), $white);
}
//输出验证码
header("content-type: image/png");
imagepng($img);
//销毁图片
imagedestroy($img);
//生产随机验证码的函数
function make($length)
{
    $code = &#39;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789&#39;;
    return substr(str_shuffle($code), 0, $length);
}
Nach dem Login kopieren

效果图:

                 

php图形图像处理之如何生成验证码?

php图形图像处理之如何生成验证码?

总结:以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。

Verwandte Etiketten:
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage