一漂亮的PHP图片验证码实例


Posted in PHP onMarch 21, 2014

一、显示效果
一漂亮的PHP图片验证码实例
二、代码如下

/*
 *  @Author fy
 */
$imgwidth =100; //图片宽度
$imgheight =40; //图片高度
$codelen =4; //验证码长度
$fontsize =20; //字体大小
$charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789';
$font = 'Fonts/segoesc.ttf';
$im=imagecreatetruecolor($imgwidth,$imgheight);
$while=imageColorAllocate($im,255,255,255);
imagefill($im,0,0,$while); //填充图像
//取得字符串
$authstr='';
$_len = strlen($charset)-1;
for ($i=0;$i<$codelen;$i++) {
 $authstr .= $charset[mt_rand(0,$_len)];
}
session_start();
$_SESSION['scode']=strtolower($authstr);//全部转为小写,主要是为了不区分大小写
//随机画点,已经改为划星星了
for ($i=0;$i<$imgwidth;$i++){
    $randcolor=imageColorallocate($im,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
 imagestring($im,mt_rand(1,5), mt_rand(0,$imgwidth),mt_rand(0,$imgheight), '*',$randcolor);
    //imagesetpixel($im,mt_rand(0,$imgwidth),mt_rand(0,$imgheight),$randcolor);
}
//随机画线,线条数量=字符数量(随便)
for($i=0;$i<$codelen;$i++) 
{  
 $randcolor=imagecolorallocate($im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
 imageline($im,0,mt_rand(0,$imgheight),$imgwidth,mt_rand(0,$imgheight),$randcolor); 
} 
$_x=intval($imgwidth/$codelen); //计算字符距离
$_y=intval($imgheight*0.7); //字符显示在图片70%的位置
for($i=0;$i<strlen($authstr);$i++){
 $randcolor=imagecolorallocate($im,mt_rand(0,150),mt_rand(0,150),mt_rand(0,150));
 //imagestring($im,5,$j,5,$imgstr[$i],$color3);
 // imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )
 imagettftext($im,$fontsize,mt_rand(-30,30),$i*$_x+3,$_y,$randcolor,$font,$authstr[$i]);
}
//生成图像
header("content-type:image/PNG");
imagePNG($im);
imageDestroy($im);

 

PHP 相关文章推荐
来自PHP.NET的入门教程
Oct 09 PHP
php zip文件解压类代码
Dec 02 PHP
PHP限制页面只能在微信自带浏览器访问的代码
Jan 15 PHP
封装ThinkPHP的一个文件上传方法实例
Oct 31 PHP
php的mssql数据库连接类实例
Nov 28 PHP
php强制运行广告的方法
Dec 01 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
Jun 24 PHP
反射调用private方法实践(php、java)
Dec 21 PHP
微信开发之网页授权获取用户信息(二)
Jan 08 PHP
php开发时容易忘记的一些技术细节
Feb 03 PHP
PHP5.3新特性小结
Feb 14 PHP
PHP面向对象程序设计类的定义与用法简单示例
Dec 27 PHP
PHP中nowdoc和heredoc使用需要注意的一点
Mar 21 #PHP
php获取表单中多个同名input元素的值
Mar 20 #PHP
php中的静态变量的基本用法
Mar 20 #PHP
php遍历文件夹下的所有文件和子文件夹示例
Mar 20 #PHP
php数据库备份还原类分享
Mar 20 #PHP
PHP实现微信公众平台音乐点播
Mar 20 #PHP
一个PHP针对数字的加密解密类
Mar 20 #PHP
You might like
一个显示天气预报的程序
2006/10/09 PHP
CakePHP去除默认显示的标题及图标的方法
2008/10/22 PHP
php使用文本统计访问量的方法
2016/05/12 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
Js 时间函数getYear()的使用问题探讨
2013/04/01 Javascript
jQuery客户端分页实例代码
2013/11/18 Javascript
js实现回放拖拽轨迹从过程上进行分析
2014/06/26 Javascript
JS中如何判断传过来的JSON数据中是否存在某字段
2014/08/18 Javascript
javascript关于继承的用法汇总
2014/12/20 Javascript
JQuery中DOM加载与事件执行实例分析
2015/06/13 Javascript
JS显示日历和天气的方法
2016/03/01 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
Bootstrap table使用方法详细介绍
2016/12/09 Javascript
tab栏切换原理
2017/03/22 Javascript
JS实现匀加速与匀减速运动的方法示例
2017/09/04 Javascript
JS沙箱模式实例分析
2017/09/04 Javascript
js 实现复选框只能选择一项的示例代码
2018/01/23 Javascript
vue2中引用及使用 better-scroll的方法详解
2018/11/15 Javascript
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
vuex存值与取值的实例
2019/11/06 Javascript
JavaScript实现简单动态表格
2020/12/02 Javascript
Python中用altzone()方法处理时区的教程
2015/05/22 Python
Python的requests网络编程包使用教程
2016/07/11 Python
用tensorflow搭建CNN的方法
2018/03/05 Python
Django-Rest-Framework 权限管理源码浅析(小结)
2018/11/12 Python
Python字符串中删除特定字符的方法
2020/01/15 Python
Python unittest discover批量执行代码实例
2020/09/08 Python
解释一下抽象方法和抽象类
2016/08/27 面试题
航空大学应届生求职信
2013/11/10 职场文书
外贸采购员岗位职责
2014/03/08 职场文书
门卫管理制度范本
2015/08/05 职场文书
Redis实现订单自动过期功能的示例代码
2021/05/08 Redis
Python 详解通过Scrapy框架实现爬取百度新冠疫情数据流程
2021/11/11 Python
JavaScript 中for/of,for/in 的详细介绍
2021/11/17 Javascript
Django+Nginx+uWSGI 定时任务的实现方法
2022/01/22 Python