国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

PHP實現下載遠程圖片保存到本地的方法

2019-11-02 14:10:37
字體:
來源:轉載
供稿:網友

在使用 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了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持IIS7站長之家。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 靖西县| 淮安市| 嫩江县| 浠水县| 潢川县| 陆丰市| 泾源县| 类乌齐县| 遂宁市| 旬阳县| 陆丰市| 恭城| 呼玛县| 崇阳县| 那坡县| 怀宁县| 抚顺县| 子长县| 梓潼县| 遂平县| 西藏| 揭阳市| 原阳县| 尼勒克县| 遂宁市| 收藏| 花垣县| 武邑县| 滦南县| 乐亭县| 嫩江县| 周宁县| 梁平县| 柞水县| 西充县| 竹北市| 清远市| 新河县| 太康县| 威海市| 和田市|