91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP如何實現下載遠程圖片保存到本地

發布時間:2021-06-22 14:36:10 來源:億速云 閱讀:131 作者:小新 欄目:開發技術

這篇文章主要介紹了PHP如何實現下載遠程圖片保存到本地,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

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

感謝你能夠認真閱讀完這篇文章,希望小編分享的“PHP如何實現下載遠程圖片保存到本地”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

竹北市| 连南| 民丰县| 白山市| 通山县| 洛宁县| 杂多县| 德昌县| 三穗县| 沂南县| 张家口市| 武山县| 波密县| 西峡县| 吴旗县| 当阳市| 邢台市| 应城市| 黑水县| 屏东市| 永吉县| 宁都县| 龙门县| 绥德县| 镇沅| 辽中县| 庐江县| 长岛县| 许昌市| 淅川县| 白山市| 龙井市| 康平县| 旬阳县| 博兴县| 黎城县| 黔西县| 额尔古纳市| 甘南县| 漯河市| 沧源|