一漂亮的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 相关文章推荐
使用数据库保存session的方法
Oct 09 PHP
PHP简单系统查询模块代码打包下载
Jun 07 PHP
PHP学习之数组值的操作
Apr 17 PHP
PHP中$_SERVER的详细参数与说明介绍
Oct 26 PHP
ThinkPHP添加更新标签的方法
Dec 05 PHP
php实现只保留mysql中最新1000条记录
Jun 18 PHP
Zend Framework基本页面布局分析
Mar 19 PHP
使用正则去除php代码中的注释方法
Nov 03 PHP
CodeIgniter开发实现支付宝接口调用的方法示例
Nov 14 PHP
php+mysql开发中的经验与常识小结
Mar 25 PHP
PHP CURL实现模拟登陆并上传文件操作示例
Jan 02 PHP
PHP7原生MySQL数据库操作实现代码
Jul 03 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 APC的安装与使用详解
2013/06/13 PHP
php二维码生成以及下载实现
2017/09/28 PHP
使用Javascript和DOM Interfaces来处理HTML
2006/10/09 Javascript
关于jQuery object and DOM element
2013/04/15 Javascript
基于JavaScript 声明全局变量的三种方式详解
2013/05/07 Javascript
jQuery表格排序组件-tablesorter使用示例
2014/05/26 Javascript
javascript去除空格方法小结
2015/05/21 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
JavaScript类型系统之基本数据类型与包装类型
2016/01/06 Javascript
JavaScript  event对象整理及详细介绍
2016/10/10 Javascript
使用ionic播放轮询广告的实现方法(必看)
2017/04/24 Javascript
JavaScript之RegExp_动力节点Java学院整理
2017/06/29 Javascript
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
2017/07/17 jQuery
jquery+css实现简单的图片轮播效果
2017/08/07 jQuery
全面介绍vue 全家桶和项目实例
2017/12/27 Javascript
vue中使用heatmapjs的示例代码(结合百度地图)
2018/09/05 Javascript
使用Webpack提升Vue.js应用程序的4种方法(翻译)
2019/10/09 Javascript
Python Selenium参数配置方法解析
2020/01/19 Python
pygame用blit()实现动画效果的示例代码
2020/05/28 Python
Python with语句用法原理详解
2020/07/03 Python
pycharm激活码免费分享适用最新pycharm2020.2.3永久激活
2020/11/25 Python
css3实现元素环绕中心点布局的方法示例
2019/01/15 HTML / CSS
微信浏览器取消缓存的方法
2015/03/28 HTML / CSS
将SVG图引入到HTML页面的实现
2019/09/20 HTML / CSS
Melijoe美国官网:法国奢侈童装购物网站
2017/04/19 全球购物
企业给企业的表扬信
2014/01/13 职场文书
小区门卫岗位职责范本
2014/08/24 职场文书
2014年教师节红领巾广播稿
2014/09/10 职场文书
国家领导干部党的群众路线教育实践活动批评与自我批评材料
2014/09/23 职场文书
2015年班组工作总结
2015/04/20 职场文书
《半截蜡烛》教学反思
2016/02/19 职场文书
小学思品教学反思
2016/02/20 职场文书
2016民族团结先进个人事迹材料
2016/02/26 职场文书
申论不会写怎么办?教您掌握这6点思维和原则
2019/07/17 职场文书
python爬虫selenium模块详解
2021/03/30 Python
Python 正则模块详情
2021/11/02 Python