【问题标题】:how to get image from curl [duplicate]如何从curl中获取图像[重复]
【发布时间】:2014-12-30 09:10:38
【问题描述】:

我的脚本运行良好,除了代码中的 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;"

【问题讨论】:

  • 服务器是否使用cookie来验证请求?
  • 您是否尝试过添加: curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);因为JPG文件传输应该以二进制模式完成?
  • 我对此一无所知:(如何检查 cookie?
  • 二进制传输添加,仍然得到 404:(

标签: php curl


【解决方案1】:

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

例子:

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 错误的原因。

问候

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-17
    • 1970-01-01
    • 1970-01-01
    • 2013-03-31
    • 1970-01-01
    • 2021-07-16
    • 1970-01-01
    • 2019-11-11
    相关资源
    最近更新 更多