一漂亮的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 调试环境(IIS+PHP+MYSQL)
Jan 10 PHP
PHP字符编码问题之GB2312 VS UTF-8解决方法
Jun 23 PHP
ueditor 1.2.6 使用方法说明
Jul 24 PHP
php使用curl抓取qq空间的访客信息示例
Feb 28 PHP
PHP解析目录路径的3个函数总结
Nov 18 PHP
php递归遍历多维数组的方法
Apr 18 PHP
PHP实现过滤各种HTML标签
May 17 PHP
PHP代码实现表单数据验证类
Jul 28 PHP
使用php实现从身份证中提取生日
May 09 PHP
PHP使用PHPExcel删除Excel单元格指定列的方法
Jul 06 PHP
php使用lua+redis实现限流,计数器模式,令牌桶模式
Apr 04 PHP
php写入文件不覆盖的实例讲解
Sep 17 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
深入了解php4(2)--重访过去
2006/10/09 PHP
php 更新数据库中断的解决方法
2009/06/05 PHP
php 无限级数据JSON格式及JS解析
2010/07/17 PHP
PHP三元运算符的结合性介绍
2012/01/10 PHP
php中判断文件存在是用file_exists还是is_file的整理
2012/09/12 PHP
Thinkphp中import的几个用法详细介绍
2014/07/02 PHP
用 Composer构建自己的 PHP 框架之设计 MVC
2014/10/30 PHP
javascript支持firefox,ie7页面布局拖拽效果代码
2007/12/20 Javascript
JavaScript动态修改背景颜色的方法
2015/04/16 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
2015/10/08 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
2017/01/19 Javascript
微信小程序 this和that详解及简单实例
2017/02/13 Javascript
AngularJs 终极购物车(实例讲解)
2017/11/08 Javascript
webpack公共组件引用路径简化小技巧
2018/06/15 Javascript
纯JS实现的读取excel文件内容功能示例【支持所有浏览器】
2018/06/23 Javascript
vue实现添加与删除图书功能
2018/10/07 Javascript
优化Vue项目编译文件大小的方法步骤
2019/05/27 Javascript
JavaScript 中的无穷数(Infinity)详解
2020/02/13 Javascript
使用原生JS实现滚轮翻页效果的示例代码
2020/05/31 Javascript
解决Vue大括号字符换行踩的坑
2020/11/09 Javascript
初步理解Python进程的信号通讯
2015/04/09 Python
python中import reload __import__的区别详解
2017/10/16 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
2019/12/25 Python
Python 生成VOC格式的标签实例
2020/03/10 Python
python实现udp聊天窗口
2020/03/31 Python
keras自动编码器实现系列之卷积自动编码器操作
2020/07/03 Python
HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例
2014/06/16 HTML / CSS
html5 更新图片颜色示例代码
2014/07/29 HTML / CSS
澳大利亚儿童和婴儿产品在线商店:Lime Tree Kids
2017/10/05 全球购物
迪卡侬荷兰官网:Decathlon荷兰
2017/10/29 全球购物
End Clothing美国站:英国男士潮牌商城
2018/04/20 全球购物
高校辅导员推荐信范文
2013/12/25 职场文书
篮球赛口号
2014/06/18 职场文书
学习十八大标语
2014/10/09 职场文书
办公用房租赁协议书
2014/11/29 职场文书
Java9新特性对HTTP2协议支持与非阻塞HTTP API
2022/03/16 Java/Android