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(3) php 函数
Feb 15 PHP
memcache命令启动参数中文解释
Jan 13 PHP
php模仿asp Application对象在线人数统计实现方法
Jan 04 PHP
php截取字符串函数分享
Feb 02 PHP
php实现兼容2038年后Unix时间戳转换函数
Mar 18 PHP
php中array_multisort对多维数组排序的方法
Jun 21 PHP
PHP判断上传文件类型的解决办法
Oct 20 PHP
理解php依赖注入和控制反转
May 11 PHP
PHP正则匹配日期和时间(时间戳转换)的实例代码
Dec 14 PHP
PHP基于curl post实现发送url及相关中文乱码问题解决方法
Nov 25 PHP
php实现 master-worker 守护多进程模式的实例代码
Jul 20 PHP
laravel通用化的CURD的实现
Dec 13 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_xmlhttp 乱码问题解决方法
2009/08/07 PHP
PHP实现的英文名字全拼随机排号脚本
2014/07/04 PHP
php根据日期显示所在星座的方法
2015/07/13 PHP
js加载之使用DOM方法动态加载Javascript文件
2013/11/08 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
2013/12/30 Javascript
node.js中的fs.open方法使用说明
2014/12/17 Javascript
jQuery实现菜单式图片滑动切换
2015/03/14 Javascript
javascript实现鼠标移到Image上方时显示文字效果的方法
2015/08/07 Javascript
JavaScript中SetInterval与setTimeout的用法详解
2015/11/10 Javascript
js判断登陆用户名及密码是否为空的简单实例
2016/05/16 Javascript
BootStrap自定义popover,点击区域隐藏功能的实现
2018/01/23 Javascript
解决vue2 在mounted函数无法获取prop中的变量问题
2018/11/15 Javascript
Vue3.0结合bootstrap创建多页面应用
2019/05/28 Javascript
js 获取扫码枪输入数据的方法
2020/06/10 Javascript
简介Django框架中可使用的各类缓存
2015/07/23 Python
Python搜索引擎实现原理和方法
2017/11/27 Python
python2 与 python3 实现共存的方法
2018/07/12 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
2019/06/24 Python
python调用webservice接口的实现
2019/07/12 Python
pycharm 2018 激活码及破解补丁激活方式
2020/09/21 Python
Python多个装饰器的调用顺序实例解析
2020/05/22 Python
python怎么调用自己的函数
2020/07/01 Python
python中@contextmanager实例用法
2021/02/07 Python
英文自荐信
2013/12/15 职场文书
喜之郎果冻广告词
2014/03/20 职场文书
寄语学生的话
2014/04/10 职场文书
村党支部群众路线教育实践活动对照检查材料
2014/09/26 职场文书
2015年度员工自我评价范文
2015/03/11 职场文书
警告通知
2015/04/25 职场文书
小区环境卫生倡议书
2015/04/29 职场文书
2015银行年终工作总结范文
2015/05/26 职场文书
给朋友的赠语
2015/06/23 职场文书
python 如何将两个实数矩阵合并为一个复数矩阵
2021/05/19 Python
TypeScript中条件类型精读与实践记录
2021/10/05 Javascript
SpringDataJPA实体类关系映射配置方式
2021/12/06 Java/Android
Vue3实现简易音乐播放器组件
2022/08/14 Vue.js