一漂亮的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下判断数组中是否存在相同的值array_unique
Mar 25 PHP
基于php iconv函数的使用详解
Jun 09 PHP
php小经验:解析preg_match与preg_match_all 函数
Jun 29 PHP
PHP 获取文件权限函数介绍
Jul 11 PHP
简单的php缓存类分享     php缓存机制
Jan 22 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
Aug 19 PHP
ThinkPHP框架安全实现分析
Mar 14 PHP
值得分享的php+ajax实时聊天室
Jul 20 PHP
thinkPHP自定义类实现方法详解
Nov 30 PHP
php 截取中英文混合字符串的方法
May 31 PHP
php实现的支付宝网页支付功能示例【基于TP5框架】
Sep 16 PHP
解决Laravel使用验证时跳转到首页的问题
Nov 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
php递归实现无限分类生成下拉列表的函数
2010/08/08 PHP
改写函数实现PHP二维/三维数组转字符串
2013/09/13 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
2014/05/12 PHP
PHP函数nl2br()与自定义函数nl2p()换行用法分析
2016/04/02 PHP
PHP获取网站中各文章的第一张图片的代码示例
2016/05/20 PHP
修改Laravel5.3中的路由文件与路径
2016/08/10 PHP
php curl中gzip的压缩性能测试实例分析
2016/11/08 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
用JS实现轮播图效果(二)
2016/06/26 Javascript
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
jquery ajax后台返回list,前台用jquery遍历list的实现
2016/10/30 Javascript
纯JS单页面赛车游戏制作代码分享
2017/03/03 Javascript
Node.js中.pfx后缀文件的处理方法
2017/03/10 Javascript
Javascript别踩白块儿(钢琴块儿)小游戏实现代码
2017/07/20 Javascript
Vue render渲染时间戳转时间,时间转时间戳及渲染进度条效果
2018/07/27 Javascript
Vue实现手机扫描二维码预览页面效果
2020/05/28 Javascript
Vue利用localStorage本地缓存使页面刷新验证码不清零功能的实现
2020/09/04 Javascript
Python3基础之基本运算符概述
2014/08/13 Python
Django中的CACHE_BACKEND参数和站点级Cache设置
2015/07/23 Python
Python中random模块生成随机数详解
2016/03/10 Python
Python 爬虫模拟登陆知乎
2016/09/23 Python
Python、PyCharm安装及使用方法(Mac版)详解
2017/04/28 Python
Python实现字符串匹配算法代码示例
2017/12/05 Python
快速了解Python开发中的cookie及简单代码示例
2018/01/17 Python
详解Python的hasattr() getattr() setattr() 函数使用方法
2018/07/09 Python
Python 面试中 8 个必考问题
2018/11/16 Python
详解django自定义中间件处理
2018/11/21 Python
python print出共轭复数的方法详解
2019/06/25 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
2020/02/18 Python
CSS3实现类似翻书效果的过渡动画的示例代码
2019/09/06 HTML / CSS
西尔斯百货官网:Sears
2016/09/06 全球购物
XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
2016/03/23 面试题
电子商务专业个人的自我评价分享
2013/10/29 职场文书
幼儿园圣诞节活动总结
2015/05/06 职场文书
周一给客户的问候语
2015/11/10 职场文书
疑《守望先锋2》A测截图泄露 或将推出新模式、新界面
2022/04/03 其他游戏