PHP Implementation Generation Verification code instance sharing

Source: Internet
Author: User

image.func.php

?
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 66676869 <?php require_once(‘string.func.php‘);  function verifyImage( $type=1,$length=4,$pixel=0,$line=0,$sess_name="verify"){    session_start();  /*定义长度和宽度*/$width=80;$height=30;/* 创建画布*/$image=imagecreatetruecolor($width, $height); /*本函数用来匹配图形的颜色,供其它绘图函数使用。参数 image 表示图形的 handle。参数 red、green、blue 是色彩三原色,其值从 0 至 255....我在此定义黑色和白色*/$white=imagecolorallocate($image, 255, 255, 255);$black=imagecolorallocate($image,0,0,0);  /*本函数将图片的封闭长方形区域着色。参数 x1、y1 及 x2、y2 分别为矩形对角线的坐标。参数 col 表示欲涂上的颜色*/imagefilledrectangle($image, 1, 1, $width-2, $height-2, $white); /*buildRandomString函数用来生成一个验证码*/$chars=buildRandomString($type,$length); /*将验证码给session以便用来判断用户输入是否正确*/$_SESSION[$sess_name]=$chars; /*定义字体库*/$fontfiles=array(‘msyh.ttf‘,‘msyhbd.ttf‘,‘simsun.ttc‘,‘SIMYOU.TTF‘,‘STHUPO.TTF‘,‘STKAITI.TTF‘,‘STLITI.TTF‘);  /*用循环来将验证码一个一个的写入图片中*/for($i=0;$i<$length;$i++){  $size=mt_rand(14,18);  $angle=mt_rand(-15,15);   /*验证码的横坐标与纵坐标*/  $x=5+$i*$size;  $y=mt_rand(20,26);   $color=imagecolorallocate($image,mt_rand(50,190),mt_rand(50,200),mt_rand(50,90));  $fontfile="../font/".$fontfiles[mt_rand(0,count($fontfiles)-1)];  $text=substr($chars,$i,1);    /*本函数将 TTF (TrueType Fonts) 字型文字写入图片*/ imagettftext($image, $size, $angle, $x, $y, $color, $fontfile, $text);}if($pixel){for($i=0;$i<50;$i++){  /*本函数可在图片上绘出一点。参数 x、y 为欲绘点的坐标,参数 col 表示该点的颜色*/  imagesetpixel($image, mt_rand(0,$width-1), mt_rand(0,$height-1), $black);}}if($line){  for($i=0;$i<10;$i++)  {  $color=imagecolorallocate($image,mt_rand(50,90),mt_rand(50,200),mt_rand(50,90));  /*画线段*/  imageline($image, mt_rand(0,$width-1), mt_rand(0,$height-1), mt_rand(0,$width-1), mt_rand(0,$height-1), $color);}}/*以gif形式输出*/header("content-type:image/gif");/*建立GIF图 并输出到网页*/imagegif($image);/*释放与 image 关联的内存*/imagedestroy($image);}

string.func.php

1234567891011121314151617181920212223242526 <?php  function buildRandomString($type=1,$length=4){  if($type==1){  /*join函数把数组转换为字符串。。join() 函数是 implode() 函数的别名*/  $chars=join("",range(0,9));}elseif ($type==2) {  /*array_merge函数合并数组*/  $chars=join("",array_merge(range("a","z"),range("A","Z")));}elseif($type==3){  $chars=join("",array_merge(range("a","z"),range("A","Z"),range(0,9)));} if($length>strlen($chars)){  exit("字符串长度不够");}/*打乱字符串*/$chars=str_shuffle($chars);return substr($chars,0,$length); } ?>

PHP Implementation Generation Verification code instance sharing

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.