最近项目不是很大,所以时间比较的空间,昨天琢磨着写点东西,想起了前几天电信公司投票选微笑天使的活动,投票是要填写验证码的,想了下想写个投票作弊程序,可是等我放假回来,人家活动已经结束了,昨天突然想起来,就写了一个获取验证码图片到本地的PHP程序,以备今后有类似的投票活动可以直接拿来使用。
程序采用了PHP的GD库,原理很简单,就是先建立一张空白图片,然后把验证码的图片使用PHP GD库中的imagecreatefromjpeg函数建立一个image对象,最后计算图片的长宽,再次使用PHP内置的imagecopy复制到一开始建立的空白图片上去。
全部代码如下:

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,255);
imagecopy($bg,$image,0,0, 0,0,$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
代码:

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,255,255,255);
imagecopy($bg,$image,0,0, 0,0,$imgw,$imgh);
imagedestroy($image);
ImagePng($bg);
波比源码 » 修改获取验证码图片到本地的PHP程序
levofloxacin online order levofloxacin 250mg for sale
spironolactone 100mg canada propecia 1mg uk fluconazole 200mg canada
ampicillin 500mg over the counter cephalexin 500mg usa order erythromycin 500mg without prescription
sildenafil 100mg generic order aurogra 100mg for sale estradiol 1mg for sale
isotretinoin 10mg generic accutane us zithromax pills
indomethacin 50mg ca order generic indocin 75mg amoxicillin over the counter
arimidex 1 mg canada viagra 100 mg best price order viagra 50mg online cheap
tadalafil sans ordonnance viagra 50mg generique en pharmacie viagra sans ordonnance en pharmacie
cialis 5mg fГјr frauen tadalafil 20mg ohne rezept sildenafil 100mg kaufen ohne rezept
accutane generic purchase zithromax online cheap purchase ivermectin
modafinil 100mg brand Sales cialis diamox 250 mg oral
order altace sale purchase ramipril pill order astelin 10ml for sale
buspirone 10mg generic oral amiodarone 100mg oxybutynin 5mg sale
alendronate over the counter pepcid generic order pepcid online cheap
order generic zyban order generic zyrtec 10mg seroquel 100mg uk
order sertraline zoloft price order viagra online
salbutamol cheap viagra 50mg pills for men viagra 100mg generic
brand naltrexone 50mg buy femara generic buy abilify
furosemide 40mg without prescription furosemide 40mg tablet plaquenil brand
order tadalafil 10mg sale order anafranil 50mg generic anafranil brand
order chloroquine aralen us baricitinib 4mg ca
zyprexa price order olanzapine 10mg pill diovan for sale
order viagra 100mg online cheap viagra 50mg without prescription cheap lisinopril 2.5mg
pay for essay assignment writing services casino arizona
triamcinolone price triamcinolone online buy buy clarinex online
priligy 30mg price order generic synthroid 100mcg levothyroxine price
buy orlistat online cheap purchase xenical order acyclovir 800mg without prescription
order generic motilium 10mg flexeril for sale online buy cyclobenzaprine generic
gloperba sale colchicine without prescription free roulette online
zantac 150mg us order ranitidine online celecoxib usa
tamsulosin 0.4mg generic purchase tamsulosin order aldactone 100mg online
order cialis 10mg sale buy tadalafil pills ciprofloxacin 1000mg cost
cialis 5mg canada cialis 20mg generic viagra pharmacy