代码
如果图片数量多的情况可以在请求的地方设置
set_time_limit(0);
,PHP
程序执行时间不做限制
<?php
/**
* Created by PhpStorm.
* User: EricPan
* Date: 2020/7/1
* Time: 16:03
*/
namespace App\Repository;
class SpiderRepository
{
/**
* 图片下载
* Created by PhpStorm.
* User: EricPan
* Date: 2020/7/1
* Time: 16:03
* @param $url
* @param string $path
*/
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);
}
/**
* 图片保存
* Created by PhpStorm.
* User: EricPan
* Date: 2020/7/1
* Time: 16:03
* @param $url
* @param $file
* @param $path
*/
private function saveAsImage($url, $file, $path)
{
$filename = pathinfo($url, PATHINFO_BASENAME);
$resource = fopen($path . $filename, 'a');
fwrite($resource, $file);
fclose($resource);
}
}