php随机产生4位的验证码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php随机产生4位的验证码相关的知识,希望对你有一定的参考价值。

<?php
  function getVerify($width=80,$height=30,$type=3,$length=4,$pixel=50,$line=5){
  //创建画布
  $image = imagecreatetruecolor($width,$height);
  //创建画笔白色,用于填充
  $white = imagecolorallocate($image,255,255,255);
  //产生随机色
  function getRandColor($image){
    return imagecolorallocate($image,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
  }
  //创建填充矩形
  imagefilledrectangle($image,0,0,$width,$height,$white);

  switch($type){
    case 1:
      $str = join(‘‘,array_rand(range(0,9),$length));
    break;
    case 2:
      $str = join(‘‘,array_rand(array_flip(array_merge(range(‘a‘,‘z‘),range(‘A‘,‘Z‘))),$length));
    break;
    case 3:
      $str = join(‘‘,array_rand(array_flip(array_merge(range(0,9),range(‘a‘,‘z‘),range(‘A‘,‘Z‘))),$length));
    break;
    default:
      exit(‘非法参数!!‘);
    break;
    }

    for($i=0;$i<$length;$i++){
      $size = mt_rand(20,24);
      $angle = mt_rand(-15,15);
      $x = imagefontwidth(20) + 20*$i;
      $y = 25;
      $font = ‘fonts/simkai.ttf‘;
      $text = substr($str,$i,1);
      imagettftext($image,$size,$angle,$x,$y,getRandColor($image),$font,$text);
    }

    //添加干扰元素

    if($pixel){
      for($i=0;$i<$pixel;$i++){
        imagesetpixel($image,mt_rand(0,$width),mt_rand(0,$height),getRandColor($image));
      }
    }

    //添加干扰线段
    if($line){
      for($m=0;$m<$line;$m++){
        imageline($image,mt_rand(0,$width),mt_rand(0,$height),mt_rand(0,$width),mt_rand(0,$height),getRandColor($image));
      }
    }

  header(‘content-type:image/png‘);
  imagepng($image);
  imagedestroy($image);
  }
  getVerify();


















































以上是关于php随机产生4位的验证码的主要内容,如果未能解决你的问题,请参考以下文章

如何用PHP生成验证码

用java实现:随机获取4位的验证码

Java登陆验证码问题

验证码和判断回文(递归)

Java编写一个四位数的随机验证码

生成6位的随机验证码