如何从卷曲中获取图像[重复]

问题描述 投票:0回答:1

除了代码中的 url 之外,我的脚本运行良好。我总是得到 404。当然我可以从浏览器获取图像。有人可以帮我解决这个问题吗? PS:实际上,我可以使用方法 int "questions/6476212" 来获取图像文件。但是当试图打开图像文件时,文件中的内容是 404 页面而不是图像。

$url = 'https://spthumbnails.5min.com/10368406/518420256_c_570_411.jpg';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.1 Safari/537.11');
$res = curl_exec($ch);
$rescode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
curl_close($ch) ;
echo $res;"
php curl
1个回答
15
投票

您的脚本编写正确。我已经尝试过并且工作正常,但是您需要设置图像标题才能让导航器显示图像。

例子:

header("Content-Type: image/jpeg");

$url = 'https://images.nga.gov/en/web_images/constable.jpg';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.1 Safari/537.11');
$res = curl_exec($ch);
$rescode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
curl_close($ch) ;
echo $res;

但是请注意您的图片网址已关闭,这就是您收到 404 错误的原因。

-- 编辑 Y2023 --

如果您希望脚本为 302 代码(重定向)做好准备,您需要添加以下标头

CURLOPT_FOLLOWLOCATION = 真 CURLOPT_MAXREDIRS = 10 // 这不是强制性的(默认为 -1)。

问候

© www.soinside.com 2019 - 2024. All rights reserved.