使用curl_getinfo返回200失败

时间:2015-05-02 07:27:16

标签: php curl

我在下载之前使用此代码获取有关网页和文件的信息。

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_NOBODY, 1); 

curl_exec($curl);

if (curl_getinfo($curl, CURLINFO_HTTP_CODE) == 200)
{ 
    echo $info['active'] = true;
    echo $info['url'] = $url;
    echo $info['size'] =     curl_getinfo($curl,CURLINFO_CONTENT_LENGTH_DOWNLOAD);
    echo $info['type'] = curl_getinfo($curl,CURLINFO_CONTENT_TYPE);

}
else
    echo 'not active';

它适用于文件或网址格式,如下所示:

www.example.com/film.mp4
www.example.com/film.php

但在URL中没有扩展名的情况下无法正常工作。这会让我'不活跃';

www.example.com/film
www.example.com/film/test

我该如何解决?

更新

它使用CURLINFO_HTTP_CODE重新调整403错误

2 个答案:

答案 0 :(得分:0)

这不是cURL的问题;当您指定不带文件的URL时,您尝试从中提取数据的网站将返回403。 尝试在浏览器中自己加载这些页面以查看。

答案 1 :(得分:0)

403 Forbidden - 服务器理解请求,但拒绝履行请求。

如果您收到带有HEAD请求的403错误,并且您的URL是目录(不是文件名)的URL,那么这意味着服务器拒绝公开目录内容,并且没有' ta默认页面(index.html,index.php等)确实显示。这实际上意味着在该位置没有任何cURL,您可以将其视为404错误(除非您需要执行一些未在您的问题中描述的额外身份验证)。

参考:HTTP status codes