程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 修改獲取驗證碼圖片到本地的PHP程序

修改獲取驗證碼圖片到本地的PHP程序

編輯:關於PHP編程

       最近項目不是很大,所以時間比較的空間,昨天琢磨著寫點東西,想起了前幾天電信公司投票選微笑天使的活動,投票是要填寫驗證碼的,想了下想寫個投票作弊程序,可是等我放假回來,人家活動已經結束了,昨天突然想起來,就寫了一個獲取驗證碼圖片到本地的PHP程序,以備今後有類似的投票活動可以直接拿來使用。

      程序采用了PHP的GD庫,原理很簡單,就是先建立一張空白圖片,然後把驗證碼的圖片使用PHP GD庫中的imagecreatefromjpeg函數建立一個image對象,最後計算圖片的長寬,再次使用PHP內置的imagecopy復制到一開始建立的空白圖片上去。

      全部代碼如下:

      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,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

      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,255,255,255);

      imagecopy($bg,$image,0,0, 0,0,$imgw,$imgh);

      imagedestroy($image);

      ImagePng($bg);

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved