修改获取验证码图片到本地的PHP程序
最近项目不是很大,所以时间比较的空间,昨天琢磨着写点东西,想起了前几天电信公司投票选微笑天使的活动,投票是要填写验证码的,想了下想写个投票作弊程序,可是等我放假回来,人家活动已经结束了,昨天突然想起来,就写了一个获取验证码图片到本地的PHP程序,以备今后有类似的投票活动可以直接拿来使用。 程序采用了PHP的GD库,原理很简单,就是先建立一张空白图片,然后把验证码的图片使用PHP GD库中的imagecreatefromjpeg函数建立一个image对象,最后计算图片的长宽,再次使用PHP内置的imagecopy复制到一开始建立的空白图片上去。 Copy to Clipboard 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 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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |