摘要:原文在使用做簡單的爬蟲的時候,我們經(jīng)常會遇到需要下載遠(yuǎn)程圖片的需求,所以下面來簡單實現(xiàn)這個需求。
原文:https://www.codecasts.com/blo...
在使用 PHP 做簡單的爬蟲的時候,我們經(jīng)常會遇到需要下載遠(yuǎn)程圖片的需求,所以下面來簡單實現(xiàn)這個需求。
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" ];
第一步,我們可以直接來使用最簡單的代碼實現(xiàn):
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); }
那在下載遠(yuǎn)程圖片的時候就可以這樣:
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); } }
在者,我們還可以這樣稍微優(yōu)化一下:
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); }
封裝成類之后,我們可以這樣調(diào)用代碼來下載圖片:
$spider = new Spider(); foreach ( $images as $url ) { $spider->downloadImage($url); }
這樣,對付基本的遠(yuǎn)程圖片下載就OK了。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/23094.html
摘要:遠(yuǎn)程下載圖片經(jīng)常用到,如何實現(xiàn)呢原理通過請求,將請求返回的文件流寫入到指定的路徑中蕭逸在使用做簡單的爬蟲的時候,我們經(jīng)常會遇到需要下載遠(yuǎn)程圖片的需求,所以下面來簡單實現(xiàn)這個需求。 php遠(yuǎn)程下載圖片經(jīng)常用到,如何實現(xiàn)呢?? 原理:通過curl請求url,將請求返回的文件流 寫入到指定的路徑中
摘要:將遠(yuǎn)程服務(wù)器的圖片下載到本地功能完美實現(xiàn)下載遠(yuǎn)程圖片保存到本地參數(shù)文件保存文件目錄保存文件名稱,使用的下載方式當(dāng)保存文件名稱為空時則使用遠(yuǎn)程文件原來的名稱保存文件名創(chuàng)建保存目錄獲取遠(yuǎn)程文件所采用的方法文件大小演示示例示例如果需要下載的圖片特 將遠(yuǎn)程服務(wù)器的圖片下載到本地
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) { ...
摘要:做過微信網(wǎng)頁開發(fā)的同學(xué)肯定遇到過這樣的需求,基于一張背景圖生成用戶推廣海報,上面需要有推廣二維碼用戶頭像用戶名稱等等。 做過微信網(wǎng)頁開發(fā)的同學(xué)肯定遇到過這樣的需求,基于一張背景圖生成用戶推廣海報,上面需要有推廣二維碼、用戶頭像、用戶名稱等等。本來應(yīng)該是一個很普通的需求,使用php的gd庫就很容易合成,但是最近在生成這樣海報的時候,發(fā)現(xiàn)時間長達19s,最后發(fā)現(xiàn)問題卡在遠(yuǎn)程拉去微信頭像上,...
閱讀 686·2021-11-22 15:32
閱讀 2774·2021-11-19 09:40
閱讀 2392·2021-11-17 09:33
閱讀 1343·2021-11-15 11:36
閱讀 1933·2021-10-11 10:59
閱讀 1538·2019-08-29 16:41
閱讀 1837·2019-08-29 13:45
閱讀 2218·2019-08-26 13:36