说明:一些基本的代码我都进行了注释,这里实现的验证码位数、需要用的字符串都可以再设置。有我的注释,大家应该很容易能看得懂。

基本思路:

1.用mt_rand()随机生成数字确定需要获取的字符串,对字符串进行拼接(觉得生成的验证码觉得有点太挤,大家可以再字符串中间拼接个空格键),实现随机验证码;

备注:建议大家用mt_rand(),而不是rand(),前者效率更高

2.利用gd库生成图片,把随机字符串写到图片输出。

效果:

每次刷新,都生成一个随机验证,后期我可能还会补充怎么实现随机码点击图片就再次更新

代码:

<?php
// 创建画布
$width = 120; // 规定画布的宽高
$height = 45;
$image = imagecreatetruecolor($width, $height); // 创建一幅真彩色图像
// 添加一些即将用到的颜色
$white = imagecolorallocate($image, 0xf2, 0xec, 0xe0);
$orange = imagecolorallocate($image, 0xff, 0xa5, 0x4c);
// 对画布背景填充颜色
imagefill($image, 0, 0, $white); //mt_rand 获取随机数 mt_rand(min, max);
function str_rand(){
$str="abcdefghijkmnpqrstuvwxyz0123456789ABCDEFGHIGKLMNPQRSTUVWXYZ";
$rand="";
for($i=0; $i<5; $i++){//获取5个随机的字符串
$rand .= $str[mt_rand(0, strlen($str)-1)]; //如:随机数为30 则:$str[30]
}
return $rand;
}
$verifyCode=str_rand();
// 画一串字符串在画布上
imagestring($image, 10, 10, 10, "$verifyCode", $orange);
// 通知浏览器输出的是图像(png类型)
header('Content-Type: image/png');
// 输出到浏览器
imagepng($image);
// 释放图像资源

最新文章

  1. react入门(4)
  2. [NHibernate]O/R Mapping基础
  3. Learn ZYNC (5)
  4. 这个Glance的界面该怎么看出问题,为什么状态是SOCKT?
  5. ios外派—本公司长年提供ios程序员外派业务(北京动点软件,可签合同)
  6. 使用CSS3制作漂亮的按钮
  7. C++基类和派生类之间的转换
  8. 如何将你的程序打包成ipa
  9. 也谈基于NodeJS的全栈式开发(基于NodeJS的前后端分离)
  10. Linux源文件夹结构呈现
  11. MMORPG战斗系统随笔(二)、浅谈场寻路Flow Field PathFinding算法
  12. php用PHPWord库生成word文档的例子
  13. 初学者如何迅速学习web前端开发
  14. penn treebank的说明,包括很多语法知识
  15. maven各个属性参数详解
  16. Yii2框架GridView自带导出功能最佳实践
  17. 241. String to Integer
  18. openssl rsa/pkey
  19. 电梯调度系统(界面由C图形库编绘)
  20. Anchor 的两种编程实现

热门文章

  1. glow
  2. 配置jenkins,并把iOS包自动上传至fir.im
  3. Apache MPM winnt
  4. BZOJ 1006 [HNOI2008] 神奇的国度(简单弦图的染色)
  5. Django数据模型及操作
  6. SNF开发平台WinForm之八-自动升级程序部署使用说明-SNF快速开发平台3.3-Spring.Net.Framework
  7. cocos2d-x开发: 整合apache http,用于自己检索多项目svn文件
  8. 介绍cms
  9. Network - 对比net-tools与iproute2
  10. nodejs morgan包