原理:經過curl請求url,將請求返回的文件流 寫入到指定的路徑中php
<?php /** * Created by PhpStorm. * User: 蕭逸 * Date: 2017/6/20 * Time: 10:11 * * 在使用 PHP 作簡單的爬蟲的時候,咱們常常會遇到須要下載遠程圖片的需求,因此下面來簡單實現這個需求。 */ //好比咱們有下面這兩張圖片: $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' ]; class Spider { //定義下載圖片 用於發送url public function downloadImage($url, $path = 'images/') { $ch = curl_init(); //以url的形式 進行請求 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); } } //封裝成類以後,咱們能夠這樣調用代碼來下載圖片:這樣,對付基本的遠程圖片下載就OK了。 $spider = new Spider(); foreach ($images as $url) { $spider->downloadImage($url); }