php中文字母数字验证码实现代码


Posted in PHP onApril 25, 2008

英文同数字
<?php
Header("Content-type:image/png");
//定义header,声明图片文件,最好是png,无版权之扰; 
//生成新的四位整数验证码
session_start();//开启session;
$authnum_session = ''; 
$str = 'abcdefghijkmnpqrstuvwxyz1234567890'; 
//定义用来显示在图片上的数字和字母;
$l = strlen($str); //得到字串的长度; 
//循环随机抽取四位前面定义的字母和数字; 
for($i=1;$i<=4;$i++)

$num=rand(0,$l-1); 
//每次随机抽取一位数字;从第一个字到该字串最大长度,
//减1是因为截取字符是从0开始起算;这样34字符任意都有可能排在其中;
$authnum_session.= $str[$num]; 
//将通过数字得来的字符连起来一共是四位;
}
session_register("authnum_session");
//用session来做验证也不错;注册session,名称为authnum_session,
//其它页面只要包含了该图片
//即可以通过$_SESSION["authnum_session"]来调用

//生成验证码图片,
srand((double)microtime()*1000000);
$im = imagecreate(50,20);//图片宽与高; 
//主要用到黑白灰三种色;
$black = ImageColorAllocate($im, 0,0,0);
$white = ImageColorAllocate($im, 255,255,255);
$gray = ImageColorAllocate($im, 200,200,200); 
//将四位整数验证码绘入图片
imagefill($im,68,30,$gray);
//如不用干扰线,注释就行了;
$li = ImageColorAllocate($im, 220,220,220);
for($i=0;$i<3;$i++) 
{//加入3条干扰线;也可以不要;视情况而定,因为可能影响用户输入; 
imageline($im,rand(0,30),rand(0,21),rand(20,40),rand(0,21),$li);

//字符在图片的位置;
imagestring($im, 5, 8, 2, $authnum_session, $white);
for($i=0;$i<90;$i++)
{//加入干扰象素
imagesetpixel($im, rand()%70 , rand()%30 , $gray);
}
ImagePNG($im);
ImageDestroy($im);
?> 

中文

<?php    
/*    
* 文件:code.php    
* 作用:验证码生成    
*/    
session_start();
// 设置 content-type    
header("Content-type: image/png");    
// 创建图片    
$im = imagecreatetruecolor(120, 30);     
$ChineseChar = array("人","出","来","友","学","孝","仁","义","礼","廉","忠","国","中","易","白","者","火 ","土","金","木","雷","风","龙","虎","天","地",  
"生","晕","菜","鸟","田","三","百","钱","福 ","爱","情","兽","虫","鱼","九","网","新","度","哎","唉","啊","哦","仪","老","少","日",  
"月 ","星");    
// 创建颜色    
$fontcolor = imagecolorallocate($im, 255, 255, 255);    
$bg = imagecolorallocate($im, 0, 0, 0);    

// 设置文字    
for($i=0;$i<4;$i++) $text .= $ChineseChar[(array_rand($ChineseChar))];    

$_SESSION['code'] = $text;

// 设置字体  [url]http://www.font.com.cn/downlist/s_12_3.html[/url] 有_GBK系列的字体下载,一般GD库都支持的!
$font = 'gbk.ttf';

// 添加文字    
imagettftext($im, 18, 0, 11, 21, $fontcolor, $font, iconv("GB2312","UTF-8",$text));    

// 输出图片    
imagepng($im);    
imagedestroy($im);    
?>

PHP 相关文章推荐
PHP字符转义相关函数小结(php下的转义字符串)
Apr 12 PHP
PHP 学习路线与时间表
Feb 21 PHP
CodeIgniter上传图片成功的全部过程分享
Aug 12 PHP
php数组删除元素示例
Mar 21 PHP
纯PHP生成的一个树叶图片画图例子
Apr 16 PHP
Laravel 4 初级教程之Pages、表单验证
Oct 30 PHP
php第一次无法获取cookie问题处理
Dec 15 PHP
在WordPress的文章编辑器中设置默认内容的方法
Dec 29 PHP
thinkphp框架下实现登录、注册、找回密码功能
Apr 06 PHP
php通过文件头判断格式的方法
May 28 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
Apr 04 PHP
Laravel框架源码解析之入口文件原理分析
May 14 PHP
Ajax PHP简单入门教程代码
Apr 25 #PHP
PHP开发框架总结收藏
Apr 24 #PHP
php5数字型字符串加解密代码
Apr 24 #PHP
php实现的简单压缩英文字符串的代码
Apr 24 #PHP
php格式化工具Beautify PHP小小BUG
Apr 24 #PHP
使用PHP的日期与时间函数技巧
Apr 24 #PHP
追求程序速度,而不是编程的速度
Apr 23 #PHP
You might like
缅甸的咖啡简史
2021/03/04 咖啡文化
用php获取远程图片并把它保存到本地的代码
2008/04/07 PHP
CodeIgniter输出中文乱码的两种解决办法
2014/06/12 PHP
PHP上传图片类显示缩略图功能
2016/06/30 PHP
PHP针对多用户实现更换头像功能
2016/09/04 PHP
一个基于jQuery的树型插件(OrangeTree)使用介绍
2012/05/03 Javascript
使用AngularJS制作一个简单的RSS阅读器的教程
2015/06/18 Javascript
分步解析JavaScript实现tab选项卡自动切换功能
2016/01/25 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
Angularjs使用ng-repeat中$even和$odd属性的注意事项
2016/12/31 Javascript
vue 录制视频并压缩视频文件的方法
2018/07/27 Javascript
nodejs中实现修改用户路由功能
2019/05/24 NodeJs
生产制造追溯系统之再说条码打印
2019/06/03 Javascript
jQuery+ajax实现用户登录验证
2020/09/13 jQuery
解决vue项目中遇到 Cannot find module ‘chalk‘ 报错的问题
2020/11/05 Javascript
[56:42]VP vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
[01:14:19]NAVI vs Mineski 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
Python中用Ctrl+C终止多线程程序的问题解决
2013/03/30 Python
python在linux系统下获取系统内存使用情况的方法
2015/05/11 Python
python 排序算法总结及实例详解
2016/09/28 Python
Python正确重载运算符的方法示例详解
2017/08/27 Python
Django admin model 汉化显示文字的实现方法
2019/08/12 Python
Python序列类型的打包和解包实例
2019/12/21 Python
三个python爬虫项目实例代码
2019/12/28 Python
在jupyter notebook中调用.ipynb文件方式
2020/04/14 Python
Python中的面向接口编程示例详解
2021/01/17 Python
需要知道的CSS3动画技术
2010/01/01 HTML / CSS
HTML5 Canvas中使用用路径描画圆弧
2015/01/01 HTML / CSS
2014年公司庆元旦活动方案
2014/03/05 职场文书
加油口号大全
2014/06/13 职场文书
公证委托书
2014/08/01 职场文书
一年级数学下册复习计划
2015/01/17 职场文书
民事申诉状范本
2015/05/20 职场文书
建国70周年的心得体会(2篇)
2019/09/20 职场文书
「月刊Action」2022年5月号封面公开
2022/03/21 日漫
Python用tkinter实现自定义记事本的方法详解
2022/03/31 Python