摘要:原文在使用做簡單的爬蟲的時候,我們經常會遇到需要下載遠程圖片的需求,所以下面來簡單實現這個需求。
原文:https://www.codecasts.com/blo...
在使用 PHP 做簡單的爬蟲的時候,我們經常會遇到需要下載遠程圖片的需求,所以下面來簡單實現這個需求。
1.使用 curl比如我們有下面這兩張圖片:
$images = [ "https://dn-laravist.qbox.me/2015-09-22_00-17-06j.png", "https://dn-laravist.qbox.me/2015-09-23_00-58-03j.png" ];
第一步,我們可以直接來使用最簡單的代碼實現:
function download($url, $path = "images/") { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); $file = curl_exec($ch); curl_close($ch); $filename = pathinfo($url, PATHINFO_BASENAME); $resource = fopen($path . $filename, "a"); fwrite($resource, $file); fclose($resource); }
那在下載遠程圖片的時候就可以這樣:
foreach ( $images as $url ) { download($url); }2.封裝一個類
縷清思路之后,我們可以將這個基本的功能封裝到一個類中:
class Spider { public function downloadImage($url, $path = "images/") { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); $file = curl_exec($ch); curl_close($ch); $filename = pathinfo($url, PATHINFO_BASENAME); $resource = fopen($path . $filename, "a"); fwrite($resource, $file); fclose($resource); } }
在者,我們還可以這樣稍微優化一下:
public function downloadImage($url, $path="images/") { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); $file = curl_exec($ch); curl_close($ch); $this->saveAsImage($url, $file, $path); } private function saveAsImage($url, $file, $path) { $filename = pathinfo($url, PATHINFO_BASENAME); $resource = fopen($path . $filename, "a"); fwrite($resource, $file); fclose($resource); }
封裝成類之后,我們可以這樣調用代碼來下載圖片:
$spider = new Spider(); foreach ( $images as $url ) { $spider->downloadImage($url); }
這樣,對付基本的遠程圖片下載就OK了。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/23094.html
摘要:遠程下載圖片經常用到,如何實現呢原理通過請求,將請求返回的文件流寫入到指定的路徑中蕭逸在使用做簡單的爬蟲的時候,我們經常會遇到需要下載遠程圖片的需求,所以下面來簡單實現這個需求。 php遠程下載圖片經常用到,如何實現呢?? 原理:通過curl請求url,將請求返回的文件流 寫入到指定的路徑中
摘要:將遠程服務器的圖片下載到本地功能完美實現下載遠程圖片保存到本地參數文件保存文件目錄保存文件名稱,使用的下載方式當保存文件名稱為空時則使用遠程文件原來的名稱保存文件名創建保存目錄獲取遠程文件所采用的方法文件大小演示示例示例如果需要下載的圖片特 將遠程服務器的圖片下載到本地
1. 使用file_get_contents function dlfile($file_url, $save_to) { $content = file_get_contents($file_url); file_put_contents($save_to, $content); } 2.使用CURL function dlfile($file_url, $save_to) { ...
摘要:做過微信網頁開發的同學肯定遇到過這樣的需求,基于一張背景圖生成用戶推廣海報,上面需要有推廣二維碼用戶頭像用戶名稱等等。 做過微信網頁開發的同學肯定遇到過這樣的需求,基于一張背景圖生成用戶推廣海報,上面需要有推廣二維碼、用戶頭像、用戶名稱等等。本來應該是一個很普通的需求,使用php的gd庫就很容易合成,但是最近在生成這樣海報的時候,發現時間長達19s,最后發現問題卡在遠程拉去微信頭像上,...
閱讀 635·2021-11-22 15:32
閱讀 2723·2021-11-19 09:40
閱讀 2318·2021-11-17 09:33
閱讀 1274·2021-11-15 11:36
閱讀 1870·2021-10-11 10:59
閱讀 1483·2019-08-29 16:41
閱讀 1785·2019-08-29 13:45
閱讀 2155·2019-08-26 13:36