Heim  >  Artikel  >  Backend-Entwicklung  >  So generieren Sie mit PHP einen Bestätigungscode

So generieren Sie mit PHP einen Bestätigungscode

迷茫
迷茫Original
2017-03-26 10:56:461223Durchsuche

PHP-Produktionsüberprüfungscode

<?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);
?>

Das obige ist der detaillierte Inhalt vonSo generieren Sie mit PHP einen Bestätigungscode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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