一漂亮的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 文件状态缓存带来的问题
Dec 14 PHP
PHPwind整合最土系统用户同步登录实现方法
Dec 08 PHP
Mysql中分页查询的两个解决方法比较
May 02 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
Jan 17 PHP
php函数与传递参数实例分析
Nov 15 PHP
详解YII关联查询
Jan 10 PHP
PHP正则表达式过滤html标签属性(DEMO)
May 04 PHP
Adnroid 微信内置浏览器清除缓存
Jul 11 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
Jan 24 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
Jul 10 PHP
PHP实现的简单在线计算器功能示例
Aug 02 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
Aug 28 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编程网上资源导航
2006/10/09 PHP
PHP+javascript模拟Matrix画面
2006/10/09 PHP
PHP实现在线阅读PDF文件的方法
2015/06/17 PHP
PHP中number_format()函数的用法讲解
2019/04/08 PHP
JavaScript的9个陷阱及评点分析
2008/05/16 Javascript
jquery 得到当前页面高度和宽度的两个函数
2010/02/21 Javascript
JQuery筛选器全系列介绍
2013/08/27 Javascript
Js与下拉列表处理问题解决
2014/02/13 Javascript
JavaScript跨域方法汇总
2014/10/16 Javascript
JavaScript实现防止网页被嵌入Frame框架的代码分享
2014/12/29 Javascript
创建自己的jquery表格插件
2015/11/25 Javascript
ReactNative页面跳转实例代码
2016/09/27 Javascript
Kendo Grid editing 自定义验证报错提示的解决方法
2016/11/18 Javascript
JS完成画圆圈的小球
2017/03/07 Javascript
理解nodejs的stream和pipe机制的原理和实现
2017/08/12 NodeJs
Jquery的Ajax技术使用方法
2019/01/21 jQuery
详解js获取video任意时间的画面截图
2019/04/17 Javascript
React路由鉴权的实现方法
2019/09/05 Javascript
bootstrap+spring boot实现面包屑导航功能(前端代码)
2019/10/09 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
python小技巧之批量抓取美女图片
2014/06/06 Python
Python实现模拟分割大文件及多线程处理的方法
2017/10/10 Python
python实现AES加密和解密
2019/03/27 Python
详解django使用include无法跳转的解决方法
2020/03/19 Python
Python django框架 web端视频加密的实例详解
2020/11/20 Python
python 自动识别并连接串口的实现
2021/01/19 Python
css3的transition属性详解
2014/12/15 HTML / CSS
CSS3的 fit-content实现水平居中
2017/09/07 HTML / CSS
Derek Rose官网:英国高档睡衣、家居服和内衣品牌
2020/01/18 全球购物
牵手50新加坡:专为黄金岁月的单身人士而设的交友网站
2020/08/16 全球购物
八一建军节活动方案
2014/02/10 职场文书
班级口号大全
2014/06/09 职场文书
党员查摆四风问题思想汇报
2014/10/25 职场文书
应急管理工作总结2015
2015/05/04 职场文书
《语言的突破》读后感3篇
2019/12/12 职场文书
前端学习——JavaScript原生实现购物车案例
2021/03/31 Javascript