php - php curl 下载远程图片
问题描述
我有权使用合作伙伴网站上的图像自行进行 qork。
所以我尝试src
使用 curl 从他们那里下载图像:
ini_set('memory_limit', '-1');
error_reporting(E_ALL);
ini_set('display_errors', 1);
$ch = curl_init();
$url = 'https://imgs.kenlo.io/VWRCUkQ2Tnp3d1BJRDBJVe1szkhnWr9UfpZS9bJDwnbk9Kawbnev1nxMNm9yHFhIP-MQkSx9WYNv23hLzO9I+z0StvcEfe6ggnXCx6+I286Lt3WU3rLdkIrG9OL9c8jv4qJ6-arDAl+tq417XfgQOV8gR8xCbkPFTqGKY2BopgOv92LEFusYUk1n0h8jsUZu6AHoQYT1sl0yxA2UXuyB8nTQCaC5XwwWUawNEtEw7ldR7AL0SVpntREFocalqyCZPuL1JoCihipUBAow-56-X7-hkZaPK5RkVqk2dXwP61MDUbcUm+6GWehj7QEYoKGTVkPBwEKa07d3JM+tW4tMnqVWwgaVGrAa6B-pxYyVhaWpZk7UOk5Bqu-A7fCxS+CyRv7jOCq8j4pBrN-bbYYZKprkVzEVTw==.jpg';
//curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE );
curl_setopt($ch, CURLOPT_REFERER, "https://www.ricimoveis.com");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE );
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$resource_ext_img_destaque = curl_exec( $ch );
curl_close($ch);
file_put_contents('/var/www/html/magickscp/dev-misc/fdp12.jpg', $resource_ext_img_destaque);
合作伙伴使用在服务器上存储图像的区域平台imgs.kenlo.io
,显然该服务器使用了一些安全技巧来阻止此操作。
我注意到以下内容:
url
to img 可能有一个重定向,因为当我看到请求时有时 ai 有“200”或“301” 。
所以问题是,我需要对响应标头进行哪些评估才能使其正常工作?
解决方案
推荐阅读
- php - 使用 PHP 模数在 div 列中排序数组
- python - 在出现时将 Flask 控制台日志写入 HTML 模板
- php - Laravel 等待排队的作业完成
- docker-compose - 多个 dockerised PHP-FPM 和 Nginx 应用程序
- .htaccess - 使用 htaccess 和通配符 DNS 将 URL 重写为子域
- javascript - 查找某些元素不应更改顺序的数组组合
- javascript - 为后续元素跳过 JSON.map()
- javascript - 显示在 Html 表中的数组
- php - 在连接被拒绝时捕获 Guzzle 异常
- reactjs - Axios 返回承诺不会破坏与 zustand 反应的数据