Home >Backend Development >PHP Tutorial >How to use php to generate verification code

How to use php to generate verification code

迷茫
迷茫Original
2017-03-26 10:56:461253browse

PHP production verification code

<?php 
/**
 * php生成验证码
 * @param $width 画布宽
 * @param $height 画布高
 * @param $vcodelen 验证码长度
 * @param $pointnum 干扰像素点数量
 * @param $linenum 干扰线条数量
 *
 * 思路:创建验证码画布,生成并填充背景色,生成验证码内容/干扰像素点/线,填充到画布,输出。
 */
    $width =  100;
    $height = 30;
    $vcodelen = 4;
    $pointnum = 200;
    $linenum = 3;
    // 创建画布
    $image = imagecreatetruecolor($width, $height);
    // 创建色块
    $bgcolor = imagecolorallocate($image, 255, 255, 255);
    // 填充画布背景色
    imagefill($image, 0, 0, $bgcolor);
    // 验证码内容
    for ($i=0; $i < $vcodelen; $i++) { 
        // 字体大小
        $fontsize = 5;
        // 字体颜色,颜色在限定范围内随机
        $fontcolor = imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120));
        $data = &#39;abcdefghijklmnopqrstuvwxyz0123456789&#39;;
        // 验证码内容在以上字符串内随机截取
        $fontcontent = substr($data, rand(0,strlen($data)),1);
        // 字符串显示位置
        $x = ($i*$width/4)+rand(5,15);
        $y = rand(5,10);
        // 字符串填充图片
        // imagestring的字体大小可选1-5,字体再大需要用imagettftext函数(需要字体文件)
        imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor);
        // imagettftext($image, $fontsize, 0, $x, $y, $fontcolor, &#39;/font/Geneva.dfont&#39;, $fontcontent);
    }
    // 干扰像素点
    for ($i=0; $i < $pointnum; $i++) { 
        $pointcolor = imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120));
        // 画布填充像素点函数
        imagesetpixel($image, rand(0,$width), rand(0,$height), $pointcolor);
    }
    // 干扰线条
    for ($i=0; $i < $linenum; $i++) { 
        $linecolor = imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120));
        // 画布填充线条函数
        imageline($image, rand(0,$width), rand(0,$height), rand(0,$width), rand(0,$height), $linecolor);
    }
    // 图片输出格式
    header(&#39;content-type: image/png&#39;);
    // 输出验证码图片
    imagepng($image);
    // 销毁画布
    imagedestroy($image);
?>

The above is the detailed content of How to use php to generate verification code. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn