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 抓取新浪读书频道的小说并生成txt电子书的代码
Dec 18 PHP
javascript 小型动画组件与实现代码
Jun 02 PHP
IP攻击升级,程序改进以对付新的攻击
Nov 23 PHP
php根据操作系统转换文件名大小写的方法
Feb 24 PHP
Codeigniter生成Excel文档的简单方法
Jun 12 PHP
ThinkPHP文件上传实例教程
Aug 22 PHP
初识Laravel
Oct 30 PHP
php图像处理类实例
Jul 28 PHP
PHP微信开发之文本自动回复
Jun 23 PHP
Yii2中DropDownList简单用法示例
Jul 18 PHP
PHP convert_cyr_string()函数讲解
Feb 13 PHP
PHP配置文件php.ini中打开错误报告的设置方法
Jan 09 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 at(@)符号的用法简介
2009/07/11 PHP
php 问卷调查结果统计
2015/10/08 PHP
PHP实现链式操作的三种方法详解
2017/11/16 PHP
浅谈Laravel核心解读之Console内核
2018/12/02 PHP
datePicker——日期选择控件(with jquery)
2007/02/20 Javascript
JQuery 入门实例1
2009/06/25 Javascript
javascript instanceof 与typeof使用说明
2010/01/11 Javascript
调试Node.JS的辅助工具(NodeWatcher)
2012/01/04 Javascript
jQuery的控件及事件(输入控件及回车事件)使用示例
2013/07/25 Javascript
javascript垃圾收集机制与内存泄漏详细解析
2013/11/11 Javascript
JS(JQuery)操作Array的相关方法介绍
2014/02/11 Javascript
JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()
2016/08/11 Javascript
jquery控制页面的展开和隐藏实现方法(推荐)
2016/10/15 Javascript
JavaScript实现实时更新系统时间的实例代码
2017/04/04 Javascript
Vue高版本中一些新特性的使用详解
2018/09/25 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
2019/08/27 Javascript
javascript中可能用得到的全部的排序算法
2020/03/05 Javascript
详解JavaScript 中的批处理和缓存
2020/11/19 Javascript
原生JS运动实现轮播图
2021/01/02 Javascript
python3利用smtplib通过qq邮箱发送邮件方法示例
2017/12/03 Python
朴素贝叶斯Python实例及解析
2018/11/19 Python
python aiohttp的使用详解
2019/06/20 Python
Python基于进程池实现多进程过程解析
2020/04/30 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
2020/07/07 Python
Python文件夹批处理操作代码实例
2020/07/21 Python
python实现每天自动签到领积分的示例代码
2020/08/18 Python
用CSS3的box-reflect设置文字倒影效果的方法讲解
2016/03/07 HTML / CSS
以设计师精品品质提供快速时尚:PopJulia
2018/01/09 全球购物
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
2014/09/15 面试题
工作试用期自我评价
2015/03/10 职场文书
邓小平文选读书笔记
2015/06/29 职场文书
婚礼迎宾词大全
2015/08/10 职场文书
采购部年度工作总结
2015/08/13 职场文书
小学音乐课歌曲《堆雪人》教学反思
2016/02/18 职场文书
python requests模块的使用示例
2021/04/07 Python
Python Flask实现进度条
2022/05/11 Python