远程 URL 上存在图像,但 curl 给我 404 状态
Posted
技术标签:
【中文标题】远程 URL 上存在图像,但 curl 给我 404 状态【英文标题】:Image exists on remote URL but curl give me 404 status 【发布时间】:2017-09-02 21:24:06 【问题描述】:我有一个 WordPress 网站,我们在使用图片时遇到了一些问题。
图片存在于服务器上,当我们通过 URL 访问图片时,它可以工作并显示图片。
但是当我们使用 curl、file_get_contents、fopen、copy 等命令获取或访问文件时,会得到 404 错误状态码。
谁能帮帮我,我不知道这是服务器问题还是WordPress问题。
下面是我的代码示例:
$url = "http://blogbucket.in/wp-content/uploads/files/0B6IGyYw9A5RYS0tNelJrdmFsMTQ/airbitz-co1.png";
$ch = @curl_init($url);
@curl_setopt($ch, CURLOPT_HEADER, true);
@curl_setopt($ch, CURLOPT_NOBODY, true);
@curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
@curl_setopt($ch, CURLOPT_FAILONERROR, true);
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
@curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
@curl_exec($ch);
$header = curl_getinfo($ch);
curl_close($ch);
echo "<pre>";
print_r($header);
echo "<pre>";
以下是我目前看过的链接。
Check whether image exists on remote URL
How to check if a file exists from a url
cURL is returning 404 on a file that exists (remote server). Why?
How can one check to see if a remote file exists using php?
How to check if an URL exists with the shell and probably curl?
PHP Detecting if source image url link leads to a "broken" image?
你可以试试here。
【问题讨论】:
我们需要查看您的代码,使用 PHP Curl 制作一个示例并将其发布,以便我们了解您正在尝试做什么 @zack6849 当然,我会更新我的问题。 你们为什么要降级我的问题,如果你认为自己擅长,那就解决这个问题。 【参考方案1】:图片存在于服务器上,当我们通过 URL 访问图片时,它可以工作并显示图片。
但是当我们使用 curl、file_get_contents、fopen、copy 等命令获取或访问文件时,会得到 404 错误状态码。
此网址返回带有图像负载的 404 响应。因此,您可以忽略响应代码并使用响应正文中的图像数据。
【讨论】:
我对它没有任何问题.... facebook 和其他 SEO 平台对这个东西有问题。以上是关于远程 URL 上存在图像,但 curl 给我 404 状态的主要内容,如果未能解决你的问题,请参考以下文章