成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

PHP 下載遠程圖片

alexnevsky / 3426人閱讀

摘要:原文在使用做簡單的爬蟲的時候,我們經(jīng)常會遇到需要下載遠程圖片的需求,所以下面來簡單實現(xiàn)這個需求。

原文:https://www.codecasts.com/blo...

在使用 PHP 做簡單的爬蟲的時候,我們經(jīng)常會遇到需要下載遠程圖片的需求,所以下面來簡單實現(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);
}

那在下載遠程圖片的時候就可以這樣:

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);
    }

封裝成類之后,我們可以這樣調用代碼來下載圖片:

$spider = new Spider();

foreach ( $images as $url ) {
    $spider->downloadImage($url);
}

這樣,對付基本的遠程圖片下載就OK了。

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/23094.html

相關文章

  • php如何下載遠程圖片呢??

    摘要:遠程下載圖片經(jīng)常用到,如何實現(xiàn)呢原理通過請求,將請求返回的文件流寫入到指定的路徑中蕭逸在使用做簡單的爬蟲的時候,我們經(jīng)常會遇到需要下載遠程圖片的需求,所以下面來簡單實現(xiàn)這個需求。 php遠程下載圖片經(jīng)常用到,如何實現(xiàn)呢?? 原理:通過curl請求url,將請求返回的文件流 寫入到指定的路徑中

    lykops 評論0 收藏0
  • php遠程圖片下載保存到本地

    摘要:將遠程服務器的圖片下載到本地功能完美實現(xiàn)下載遠程圖片保存到本地參數(shù)文件保存文件目錄保存文件名稱,使用的下載方式當保存文件名稱為空時則使用遠程文件原來的名稱保存文件名創(chuàng)建保存目錄獲取遠程文件所采用的方法文件大小演示示例示例如果需要下載的圖片特 將遠程服務器的圖片下載到本地

    Anleb 評論0 收藏0
  • PHP下載遠程圖片的3個方法

    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) { ...

    tianlai 評論0 收藏0
  • php curl 優(yōu)化下載微信頭像

    摘要:做過微信網(wǎng)頁開發(fā)的同學肯定遇到過這樣的需求,基于一張背景圖生成用戶推廣海報,上面需要有推廣二維碼用戶頭像用戶名稱等等。 做過微信網(wǎng)頁開發(fā)的同學肯定遇到過這樣的需求,基于一張背景圖生成用戶推廣海報,上面需要有推廣二維碼、用戶頭像、用戶名稱等等。本來應該是一個很普通的需求,使用php的gd庫就很容易合成,但是最近在生成這樣海報的時候,發(fā)現(xiàn)時間長達19s,最后發(fā)現(xiàn)問題卡在遠程拉去微信頭像上,...

    ZweiZhao 評論0 收藏0

發(fā)表評論

0條評論

alexnevsky

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<