一漂亮的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 获取mysql数据库信息代码
Mar 12 PHP
php ob_flush,flush在ie中缓冲无效的解决方法
May 09 PHP
PHP学习笔记之三 数据库基本操作
Jan 17 PHP
php笔记之:AOP的应用
Apr 24 PHP
基于php权限分配的实现代码
Apr 28 PHP
windows环境下php配置memcache的具体操作步骤
Jun 09 PHP
php页面防重复提交方法总结
Nov 25 PHP
PHP字符串比较函数strcmp()和strcasecmp()使用总结
Nov 19 PHP
php操作xml入门之xml标签的属性分析
Jan 23 PHP
PHP中curl_setopt函数用法实例分析
Apr 16 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
Feb 08 PHP
PHP使用Redis长连接的方法详解
Feb 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
收听困难?教您超简便短波广播抗干扰方法!
2021/03/01 无线电
php简单提示框alert封装函数
2010/08/08 PHP
PHP针对常规模板引擎中与CSS/JSON冲突的解决方法
2014/08/19 PHP
php通过sort()函数给数组排序的方法
2015/03/18 PHP
PHP获取数组最大值下标的方法
2015/05/12 PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
2016/01/09 PHP
thinkPHP内置字符串截取函数用法详解
2016/11/15 PHP
[原创]PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】
2019/07/12 PHP
jQuery 解析xml文件
2009/08/09 Javascript
百度判断手机终端并自动跳转js代码及使用实例
2014/06/11 Javascript
Blocksit插件实现瀑布流数据无限( 异步)加载
2014/06/20 Javascript
JS+CSS实现带有碰撞缓冲效果的竖向导航条代码
2015/09/15 Javascript
js倒计时抢购实例
2015/12/20 Javascript
Underscore源码分析
2015/12/30 Javascript
JavaScript对象参数的引用传递
2016/01/14 Javascript
js 上传文件预览的简单实例
2016/08/16 Javascript
基于jQuery实现数字滚动效果
2017/01/16 Javascript
详解用函数式编程对JavaScript进行断舍离
2017/09/18 Javascript
JS+CSS实现网页加载中的动画效果
2017/10/27 Javascript
iview table高度动态设置方法
2018/03/14 Javascript
微信小程序实现滴滴导航tab切换效果
2018/07/24 Javascript
vue项目中,main.js,App.vue,index.html的调用方法
2018/09/20 Javascript
通过js实现压缩图片上传功能
2020/02/25 Javascript
django query模块
2019/04/20 Python
Python 基于jwt实现认证机制流程解析
2020/06/22 Python
基于Django快速集成Echarts代码示例
2020/12/01 Python
工厂厂长岗位职责
2013/11/08 职场文书
计算机应用专业推荐信
2013/11/13 职场文书
《悯农》教学反思
2014/04/28 职场文书
工地宣传标语
2014/06/18 职场文书
大明湖导游词
2015/02/03 职场文书
2015年档案室工作总结
2015/05/23 职场文书
地心历险记观后感
2015/06/15 职场文书
辞职报告(范文三篇)
2019/08/27 职场文书
用javascript制作qq注册动态页面
2021/04/14 Javascript
java版 联机五子棋游戏
2022/05/04 Java/Android