php中使用gd庫實現遠程圖片下載執行個體_php執行個體

來源:互聯網
上載者:User

因為今天想寫個遠程下載圖片的類,提前熱身寫了個php gd庫實現遠程圖片下載功能,當然curl實現更好,php gd庫實現遠程圖片下載功能主要使用gd庫的兩個函數ImageCreateFromXXX()用於產生圖片函數和ImageXXX函數,XXX表示不同圖片的副檔名,所以你要想辦法擷取遠程圖片的副檔名了,附上php代碼如下:

<?phpheader("Content-type:text/html ; charset=utf-8"); if (!empty($_POST['submit'])){ $url = $_POST['url']; $pictureName = $_POST['pictureName']; $img = getPicture($url,$pictureName); echo '<pre><img src="'.$img.'"></pre>'; }function getPicture($url,$pictureName){ if ($url == "") return false; //擷取圖片的副檔名 $info = getimagesize($url); $mime = $info['mime']; $type = substr(strrchr($mime,'/'), 1); //不同的圖片類型選擇不同的圖片產生和儲存函數 switch($type){ case 'jpeg':  $img_create_func = 'imagecreatefromjpeg';  $img_save_func = 'imagejpeg';  $new_img_ext = 'jpg';  break; case 'png':  $img_create_func = 'imagecreatefrompng';  $img_save_func = 'imagepng';  $new_img_ext = 'png';  break; case 'bmp':  $img_create_func = 'imagecreatefrombmp';  $img_save_func = 'imagebmp';  $new_img_ext = 'bmp';  break; case 'gif':  $img_create_func = 'imagecreatefromgif';  $img_save_func = 'imagegif';  $new_img_ext = 'gif';  break; case 'vnd.wap.wbmp':  $img_create_func = 'imagecreatefromwbmp';  $img_save_func = 'imagewbmp';  $new_img_ext = 'bmp';  break; case 'xbm':  $img_create_func = 'imagecreatefromxbm';  $img_save_func = 'imagexbm';  $new_img_ext = 'xbm';  break; default:  $img_create_func = 'imagecreatefromjpeg';  $img_save_func = 'imagejpeg';  $new_img_ext = 'jpg';    } if ($pictureName == ""){ $pictureName = time().".{$new_img_ext}"; }else{ $pictureName = $pictureName.".{$new_img_ext}"; } $src_im = $img_create_func($url); //由url建立新圖片 $img_save_func($src_im, $pictureName); //輸出檔案到檔案 return $pictureName;} ?><form method="POST" action="">遠程url地址:<input type="text" name="url" size=20 /><br />檔案名稱:<input type="text" name="pictureName" size=20 /><input type="submit" name="submit" value="下載" /></form>

運行結果如下圖:(圖片自動儲存在當前檔案目錄,不明白的可以留言)


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.