php 用系统自带的函数生成验证码
来源:互联网 发布:sql数据库培训中心 编辑:程序博客网 时间:2024/06/04 17:48
<?php
header("Content-Type: image/png");//设定文档类型
session_start();
$width = 50; //验证码图片的宽度
$height = 20; //验证码图片的高度
$length = 4; //验证码的位数
/**
* 生成字符串形式验证码
* 通过随机数在候选字符列表中组合出随机验证码
*/
function createCaptcha($size){
$codeList = "abcdefghigkmnpqrstuvwxyz23456789"; //为什么没有0、1、o、l? 容易混淆
$captcha = '';
for($i=0; $i<$size; $i++){
$randomNum = mt_rand(0,31);
$captcha .= $codeList[$randomNum];
}
return $captcha;
}
/**
* 将字符串验证码生成为图片形式
*
* @return: resource 生成图片的资源
*/
function createImage($captcha, $width, $height){
$length = strlen($captcha);
$size = $width/$length; //每个字符的宽度
$left = 0;
$imageResource = imagecreate($width,$height); //生成指定宽高的空白图片
$bgColor = imagecolorallocate($imageResource,169,169,169); //设定颜色,第一次调用此函数会给图片填充背景颜色
$strColor = imagecolorallocate($imageResource,0,0,0); //分配字符串的颜色
/*
* for()
* 依次把每个字符写入到图片中
* 每个字符的大小随机
* 每个字符的角度随机
*/
for($i=0; $i<$length; $i++){
$randomSize = mt_rand($size-$size/10,$size+$size/10); //随机生成文字的大小
$location = $left+$i*$size+$size/10; //计算字符的位置
imagettftext($imageResource,$randomSize,mt_rand(-18,18),$location,15,$strColor,'./ariblk.ttf',$captcha[$i]); //将字符写入图片
}
/*
* for()
* 向图片添加干扰点
* 干扰点的颜色随机产生
*/
for($i=0; $i<50; $i++){
$randomColor = imagecolorallocate($imageResource,mt_rand(100,255),mt_rand(100,255),mt_rand(100,255));
imagesetpixel($imageResource,mt_rand(0,$width),mt_rand(0,$height),$randomColor);
}
return $imageResource;
}
$captcha = createCaptcha($length); //生成字符验证码
$_SESSION['captcha'] = $captcha; //保存字符验证码
$image = createImage($captcha,$width,$height); //创建图片验证码
imagepng($image);//生成图片
imagedestory($image);//销毁图片,释放内存
?>
<?php
$im = imagecreatefrompng("test.png");
imagepng($im);
?>
<?php
$im = imagecreatefrompng("test.png");
imagepng($im);
?>
- php 用系统自带的函数生成验证码
- 用php自带的filter函数验证、过滤数据
- PHP生成自带logo的二维码
- swift系统自带二维码的生成
- PHP自带函数验证邮箱、URL、IP是否合法
- php 自带的解压zip函数
- php中自带的内置函数
- Apex系统自带的函数
- 跟燕十八学习PHP-第十天-详细讲解系统自带的字符串函数
- iOS系统自带指纹验证的使用
- mac下自带的php无法加载验证码的问题
- php自带函数大全
- php自带过滤函数
- iOS系统自带二维码的生成以及扫描
- PHP绘图函数生成图片验证码
- 使用微擎自带的函数生成二维码
- 生成带干扰线的验证码
- Java生成带计算的验证码
- ASP.NET环境下配置FCKEditor并上传图片及其它文件
- NOIP2006数列(sequence)
- php下载文件连接方法
- M-JPEG、MPEG4、H.264都有何区别 依维安防论坛
- 常见英语面试问题集锦
- php 用系统自带的函数生成验证码
- 收藏面试智力题 (附答案)
- 微软Windows Phone 7能疯起来吗?
- H.264/MPEG-4 AVC
- Android: SDCard容量计算
- 不喜欢技术类的东西
- 新人
- DirectShow组件原理分析及应用
- android进程间服务通信示例