修改獲取驗證碼圖片到本地的PHP程序
來源:程序員人生 發(fā)布時間:2013-12-09 22:27:55 閱讀次數(shù):2739次
最近項目不是很大,所以時間比較的空間,昨天琢磨著寫點東西,想起了前幾天電信公司投票選微笑天使的活動,投票是要填寫驗證碼的,想了下想寫個投票作弊程序,可是等我放假回來,人家活動已經(jīng)結(jié)束了,昨天突然想起來,就寫了一個獲取驗證碼圖片到本地的PHP程序,以備今后有類似的投票活動可以直接拿來使用。
程序采用了PHP的GD庫,原理很簡單,就是先建立一張空白圖片,然后把驗證碼的圖片使用PHP GD庫中的imagecreatefromjpeg函數(shù)建立一個image對象,最后計算圖片的長寬,再次使用PHP內(nèi)置的imagecopy復(fù)制到一開始建立的空白圖片上去。
全部代碼如下:
Copy to Clipboard
引用的內(nèi)容:
[www.veryhuo.com] header("Content-type:image/png");
set_time_limit(0);//設(shè)置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內(nèi)置的exif_imagetype函數(shù),非常方便,
關(guān)于exif_imagetype的詳細使用方法可以訪問:http://php.net/manual/en/function.exif-imagetype.php
代碼:
Copy to Clipboard
引用的內(nèi)容:
[www.veryhuo.com] header("Content-type:image/png");
set_time_limit(0);//設(shè)置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);
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進行捐贈
------分隔線----------------------------
------分隔線----------------------------