一漂亮的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代码
Apr 09 PHP
php 应用程序安全防范技术研究
Sep 25 PHP
php skymvc 一款轻量、简单的php
Jun 28 PHP
php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
Aug 23 PHP
PHP函数学习之PHP函数点评
Jul 05 PHP
PHP 异步执行方法,模拟多线程的应用分析
Jun 03 PHP
Linux下安装PHP MSSQL扩展教程
Oct 24 PHP
WordPress特定文章对搜索引擎隐藏或只允许搜索引擎查看
Dec 31 PHP
PHP+swoole实现简单多人在线聊天群发
Jan 19 PHP
PHP中call_user_func_array回调函数的用法示例
Nov 26 PHP
PHP实现的日历功能示例
Sep 01 PHP
Thinkphp5.0框架视图view的模板布局用法分析
Oct 12 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下连接mssql2005的代码
2011/01/17 PHP
PHP删除目录及目录下所有文件的方法详解
2013/06/06 PHP
PHP实现格式化文件数据大小显示的方法
2015/01/03 PHP
php获得文件大小和文件创建时间的方法
2015/03/13 PHP
php中array_multisort对多维数组排序的方法
2020/06/21 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
JSON语法五大要素图文介绍
2012/12/04 Javascript
JavaScript数组常用操作技巧汇总
2014/11/17 Javascript
使用JQuery 加载页面时调用JS的实现方法
2016/05/30 Javascript
jQuery 利用$.ajax 时获取原生XMLHttpRequest 对象的方法
2016/08/25 Javascript
angularjs中的$eval方法详解
2017/04/24 Javascript
微信小程序自定义模态对话框实例详解
2017/08/16 Javascript
jQuery实现简单日期格式化功能示例
2017/09/19 jQuery
vue中实现先请求数据再渲染dom分享
2018/03/17 Javascript
vscode 开发Vue项目的方法步骤
2018/11/25 Javascript
JS/jQuery实现简单的开关灯效果【案例】
2019/02/19 jQuery
vue自定义指令之面板拖拽的实现
2019/04/14 Javascript
vscode中的vue项目报错Property ‘xxx‘ does not exist on type ‘CombinedVueInstance<{ readyOnly...Vetur(2339)
2020/09/11 Javascript
Python的GUI框架PySide的安装配置教程
2016/02/16 Python
python中的字典操作及字典函数
2018/01/03 Python
Python Pywavelet 小波阈值实例
2019/01/09 Python
基于python判断字符串括号是否闭合{}[]()
2020/09/21 Python
印度民族服装购物网站:BIBA
2019/08/05 全球购物
如何手工释放资源
2013/12/15 面试题
文明礼仪事迹材料
2014/01/09 职场文书
联欢晚会主持词
2014/03/25 职场文书
物业管理工作方案
2014/05/10 职场文书
运动会加油口号
2014/06/07 职场文书
诚信考试标语
2014/06/24 职场文书
余世维讲座观后感
2015/06/11 职场文书
2015年公路路政个人工作总结
2015/07/24 职场文书
2016教师政治学习心得体会
2016/01/23 职场文书
2016年优秀团支部事迹材料
2016/02/26 职场文书
创作书写之导游词实用技巧分享(干货)
2019/12/20 职场文书
详解pytorch创建tensor函数
2022/03/22 Python
Python OpenCV超详细讲解读取图像视频和网络摄像头
2022/04/02 Python