/**
* 获取到图片路径存到本地
*
* @param $url string 图片链接
* @return string
*/
public function savePhoto($url)
{
// 抓取不受时间限制(设置脚本最大执行时间)
set_time_limit(0);
// 字符串替换
$url = str_replace('&', '&', $url);
$curl = curl_init();
// 设置 cURL 传输选项
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; SeaPort/1.2; Windows NT 5.1; SV1; InfoPath.2)");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 0);
// 执行 cURL 会话
$values = curl_exec($curl);
// 关闭 cURL 会话
curl_close($curl);
//设置图片保存路径和权限和保存格式-图片保存名称最好设计不容易重复,否则会出现重复路劲和漏抓取
$fileName = md5(microtime() . rand(22, 9999)) . '.jpg';
$savePath = "public/uploads/wechat_img/" . date('Ymd', time()) . '/';
$path = ROOT_PATH . $savePath;
if (!is_dir($path)) {
mkdir($path, '0755', true);
}
// 打开文件或者URL,保存图片到指定路径
$fp2 = fopen($path . $fileName, 'wb');
fputs($fp2, $values);
fclose($fp2);
// 返回保存后的图片路径
return $savePath . $fileName;
}
突然一时兴起,图片库很久没更新了,然后后台做了个功能,可以直接把有美图的网站链接可以直接把链接的图片抓取到并存到我的本地(只是公众号那些分享的图片,会员下载的不行),这样就不用麻烦的一个一个下载了,这里分享的就是通过QueryList获取到的图片链接地址存到本地并返回图片保存路劲,用起来比较方便,记录一下。
推荐