PHP如何怎么样高效下载图片保存到本地? 直接上代码:
/**
* 下载图片,保存到本地文件
*
* @param string $url
* @param string $saveFile
* @return mixed
*/
function xiazai($url, $saveFile) {
$parse = parse_url($url);
if (!isset($parse['host'])) {
return false;
}
$file = SAVE_PATH . $saveFile;
echo 'Saving ', $file, PHP_EOL;
mkdirs( dirname($file) );
$ip = genRandIp();
$fp = fopen($file, 'wb');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'CLIENT-IP:' . $ip,
'X-FORWARDED-FOR:' . $ip,
'User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3100.0 Safari/537.36',
'Host:' . $parse['host'],
));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 180);
$res = curl_exec($ch);
curl_close($ch);
fclose($fp);
// 下载失败,则删除空文件
if (filesize($file) <= 10) {
@unlink($file);
return false;
}
return $res;
}