加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

支持中文、字母、数字的PHP验证码

发布时间:2020-12-13 02:35:54 所属栏目:PHP教程 来源:网络整理
导读:《:支持中文、字母、数字的PHP验证码》要点: 本文介绍了:支持中文、字母、数字的PHP验证码,希望对您有用。如果有疑问,可以联系我们。 本文以实例演示5种验证码,并介绍生成验证码的函数.PHP生成验证码的原理:通过GD库,生成一张带验证码的图片,并将验证

《:支持中文、字母、数字的PHP验证码》要点:
本文介绍了:支持中文、字母、数字的PHP验证码,希望对您有用。如果有疑问,可以联系我们。

本文以实例演示5种验证码,并介绍生成验证码的函数.PHP生成验证码的原理:通过GD库,生成一张带验证码的图片,并将验证码保留在Session中.PHP编程

PHP编程

session_start(); 
getCode(4,60,20); 
  
function getCode($num,$w,$h) { 
  $code = ""; 
  for ($i = 0; $i < $num; $i++) { 
    $code .= rand(0,9); 
  } 
  //4位验证码也可以用rand(1000,9999)直接生成 
  //将生成的验证码写入session,备验证时用 
  $_SESSION["helloweba_num"] = $code; 
  //创建图片,定义颜色值 
  header("Content-type: image/PNG"); 
  $im = imagecreate($w,$h); 
  $black = imagecolorallocate($im,0); 
  $gray = imagecolorallocate($im,200,200); 
  $bgcolor = imagecolorallocate($im,255,255); 
  //填充配景 
  imagefill($im,$gray); 
  
  //画边框 
  imagerectangle($im,$w-1,$h-1,$black); 
  
  //随机绘制两条虚线,起干扰作用 
  $style = array ($black,$black,$gray,$gray 
  ); 
  imagesetstyle($im,$style); 
  $y1 = rand(0,$h); 
  $y2 = rand(0,$h); 
  $y3 = rand(0,$h); 
  $y4 = rand(0,$h); 
  imageline($im,$y1,$y3,IMG_COLOR_STYLED); 
  imageline($im,$y2,$y4,IMG_COLOR_STYLED); 
  
  //在画布上随机生成大量黑点,起干扰作用; 
  for ($i = 0; $i < 80; $i++) { 
    imagesetpixel($im,rand(0,$w),$h),$black); 
  } 
  //将数字随机显示在画布上,字符的水平间距和位置都按一定波动范围随机生成 
  $strx = rand(3,8); 
  for ($i = 0; $i < $num; $i++) { 
    $strpos = rand(1,6); 
    imagestring($im,5,$strx,$strpos,substr($code,$i,1),$black); 
    $strx += rand(8,12); 
  } 
  imagepng($im);//输出图片 
  imagedestroy($im);//释放图片所占内存 
}

以上所述就是本文的全部内容了,希望大家能够喜欢.PHP编程

编程之家培训学院每天发布《:支持中文、字母、数字的PHP验证码》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读