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在DOS命令行下却无法链接MySQL的技术笔记
Dec 29 PHP
重新封装zend_soap实现http连接安全认证的php代码
Jan 12 PHP
浅析PHP substr,mb_substr以及mb_strcut的区别和用法
Jun 21 PHP
php代码审计比较有意思的例子
May 07 PHP
PHP把小数转成整数3种方法
Jun 30 PHP
全面了解PHP中的全局变量
Jun 17 PHP
Yii2框架数据验证操作实例详解
May 02 PHP
PHP实现将base64编码字符串转换成图片示例
Jun 22 PHP
实现PHP中session存储及删除变量
Oct 15 PHP
php设计模式之装饰模式应用案例详解
Jun 17 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
May 29 PHP
PHP array_reverse() 函数原理及实例解析
Jul 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
PHP设计模式 注册表模式
2012/02/05 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
Laravel开启跨域请求的方法
2019/10/13 PHP
javascript背投广告代码的完善
2008/04/08 Javascript
慎用 somefunction.prototype 分析
2009/06/02 Javascript
裁剪字符串trim()自定义改进版
2013/04/10 Javascript
Jquery 切换不同图片示例代码
2013/12/05 Javascript
js读写cookie实现一个底部广告浮层效果的两种方法
2013/12/29 Javascript
JavaScript检测并限制复选框选中个数的方法
2015/08/12 Javascript
JQuery给select添加/删除节点的实现代码
2016/04/26 Javascript
jQuery的文档处理程序详解
2016/05/10 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
2016/07/14 Javascript
利用jquery获取select下拉框的值
2016/11/23 Javascript
JavaScript原生节点操作小结
2017/01/17 Javascript
NodeJS遍历文件生产文件列表功能示例
2017/01/22 NodeJs
vue中使用ueditor富文本编辑器
2018/02/08 Javascript
localstorage实现带过期时间的缓存功能
2019/06/28 Javascript
vue实现列表滚动的过渡动画
2020/06/29 Javascript
解决vue刷新页面以后丢失store的数据问题
2020/08/11 Javascript
在Vue中获取自定义属性方法:data-id的实例
2020/09/09 Javascript
Vue表单提交点击事件只允许点击一次的实例
2020/10/23 Javascript
[15:15]教你分分钟做大人:狙击手
2014/10/30 DOTA
[52:26]完美世界DOTA2联赛决赛 FTD vs Phoenix 第一场 11.08
2020/11/11 DOTA
在Python中关于中文编码问题的处理建议
2015/04/08 Python
scrapy spider的几种爬取方式实例代码
2018/01/25 Python
如何解决django-celery启动后迅速关闭
2019/10/16 Python
Python简易计算器制作方法代码详解
2019/10/31 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
2020/01/20 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
2020/09/29 Python
世界经理人咨询有限公司面试
2014/09/23 面试题
如何开启linux的ssh服务
2015/02/14 面试题
博士研究生自我鉴定范文
2013/12/04 职场文书
营销人才自我鉴定范文
2013/12/25 职场文书
缴纳养老保险的证明
2014/01/10 职场文书
卢旺达饭店观后感
2015/06/05 职场文书
酒店厨房管理制度
2015/08/06 职场文书