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

首頁 > 語言 > PHP > 正文

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

2024-05-04 23:58:09
字體:
來源:轉載
供稿:網友

在使用 PHP 做簡單的爬蟲的時候,我們經常會遇到需要php/240064.html">下載遠程圖片的需求,所以下面來簡單實現這個需求。

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了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 雷波县| 金昌市| 乌兰浩特市| 大埔区| 雷波县| 仙游县| 杨浦区| 乐亭县| 中山市| 屏东县| 赤城县| 泽库县| 贡嘎县| 德昌县| 固镇县| 温州市| 新源县| 常德市| 喀喇沁旗| 黎城县| 梓潼县| 松潘县| 普兰店市| 渭源县| 裕民县| 呼伦贝尔市| 宁远县| 谢通门县| 济宁市| 措美县| 炉霍县| 三亚市| 惠安县| 崇阳县| 如皋市| 岳阳市| 荃湾区| 沙河市| 绵阳市| 铅山县| 长兴县|