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 相关文章推荐
PHP4实际应用经验篇(5)
Oct 09 PHP
php防攻击代码升级版
Dec 29 PHP
PHP中usort在值相同时改变原始位置问题的解决方法
Nov 27 PHP
色色整理的PHP面试题集锦
Mar 08 PHP
php常用的url处理函数总结
Nov 19 PHP
php常用表单验证类用法实例
Jun 18 PHP
深入探究PHP的多进程编程方法
Aug 18 PHP
PHP实现递归无限级分类
Oct 22 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
Dec 02 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
Jun 08 PHP
Laravel给生产环境添加监听事件(SQL日志监听)
Jun 19 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
Jul 22 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
yii2安装详细流程
2018/05/23 PHP
JavaScript字符串对象slice方法入门实例(用于字符串截取)
2014/10/16 Javascript
使用javascript实现Iframe自适应高度
2014/12/24 Javascript
Javascript中3个需要注意的运算符
2015/04/02 Javascript
基于Bootstrap的Metronic框架实现页面链接收藏夹功能
2016/08/29 Javascript
JavaScript SHA1加密算法实现详细代码
2016/10/06 Javascript
VueJs使用Amaze ui调整列表和内容页面
2017/11/30 Javascript
360doc网站不登录就无法复制内容的解决方法
2018/01/27 Javascript
JS遍历DOM文档树的方法实例详解
2018/04/03 Javascript
深入理解Vue nextTick 机制
2018/04/28 Javascript
vue获取元素宽、高、距离左边距离,右,上距离等还有XY坐标轴的方法
2018/09/05 Javascript
微信小程序仿知乎实现评论留言功能
2018/11/28 Javascript
js console.log打印对象时属性缺失的解决方法
2019/05/23 Javascript
Vue引入Stylus知识点总结
2020/01/16 Javascript
python使用append合并两个数组的方法
2015/04/28 Python
Python 中的with关键字使用详解
2016/09/11 Python
详解Python 模拟实现生产者消费者模式的实例
2017/08/10 Python
python3.x 将byte转成字符串的方法
2018/07/17 Python
python给微信好友定时推送消息的示例
2019/02/20 Python
python实现图片转字符小工具
2019/04/30 Python
利用selenium爬虫抓取数据的基础教程
2019/06/10 Python
Python 实现一个手机号码获取妹子名字的功能
2019/09/25 Python
python使用布隆过滤器的实现示例
2020/08/20 Python
python 自动识别并连接串口的实现
2021/01/19 Python
大学考试作弊检讨书
2014/01/30 职场文书
酒店大堂副理的职责范文
2014/02/13 职场文书
《愚公移山》教学反思
2014/02/20 职场文书
幼儿园教师岗位职责
2014/03/17 职场文书
应届毕业生求职信
2014/05/26 职场文书
2014年导购员工作总结
2014/11/18 职场文书
单位婚育证明范本
2014/11/21 职场文书
教师个人师德总结
2015/02/06 职场文书
团队执行力培训心得体会
2015/08/15 职场文书
初二物理教学反思
2016/02/19 职场文书
小学秋季运动会加油口号及加油稿
2019/08/19 职场文书
分享五个Node.js开发的优秀实践 
2022/04/07 NodeJs