微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

修改获取验证码图片到本地的PHP程序

最近项目不是很大,所以时间比较的空间,昨天琢磨着写点东西,想起了前几天电信公司投票选微笑天使的活动,投票是要填写验证码的,想了下想写个投票作弊程序,可是等我放假回来,人家活动已经结束了,昨天突然想起来,就写了一个获取验证码图片到本地的PHP程序,以备今后有类似的投票活动可以直接拿来使用。

程序采用了PHP的GD库,原理很简单,就是先建立一张空白图片,然后把验证码的图片使用PHP GD库中的imagecreatefromjpeg函数建立一个image对象,最后计算图片的长宽,再次使用PHP内置的imagecopy复制到一开始建立的空白图片上去。
全部代码如下:

copy to Clipboard

 Codes

引用的内容[www.veryhuo.com]
header(Content-type:image/png);
set_time_limit(0);//设置PHP超时时间
$url = $_GET['url'];
$url = http://vcer.baidu.com/verify;
$imginfo = GetimageSize ( $url );
$imgw = $imginfo [0];
$imgh = $imginfo [1];
$bg = imagecreatetruecolor($imgw,$imgh);
$image = imagecreatefromjpeg($url);
imagecolorallocate($image,255,255);
imagecopy($bg,$image,$imgw,$imgh);
imagedestroy($image);
ImagePng($bg);

此处的代码支持验证码格式为jpg的格式,如果是png或者gif的格式可以参考第二页。

通过上一页一个获取验证码图片到本地的PHP程序,对于验证码为jpg格式的图片是可以正常输出的,对于png、gif的验证码则不能正常使用,今天稍微修改一下PHP代码,使其可以支持png、gif、jpg三种格式的验证码。

PHP判断图片的格式可使用PHP内置的exif_imagetype函数,非常方便,

关于exif_imagetype的详细使用方法可以访问:http://PHP.net/manual/en/function.exif-imagetype.PHP

代码

copy to Clipboard

 Codes

引用的内容[www.veryhuo.com]
header(Content-type:image/png);
set_time_limit(0);//设置PHP超时时间
$url = $_GET['url'];
$url = http://vcer.baidu.com/verify;
if(empty($url)){
echo 没有图片;
die;
}
$imginfo = GetimageSize ( $url );
$type = exif_imagetype($url);
$imgw = $imginfo [0];
$imgh = $imginfo [1];
$bg = imagecreatetruecolor($imgw,$imgh);
if($type==IMAGETYPE_GIF){
$image = imagecreatefromgif($url);
}elseif($type==IMAGETYPE_JPEG){
$image = imagecreatefromjpeg($url);
}elseif($type==IMAGETYPE_PNG){
$image = imagecreatefrompng($url);
}

imagecolorallocate($image,$imgh);
imagedestroy($image);
ImagePng($bg);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐