【问题标题】:php get facebook page status 404php获取facebook页面状态404
【发布时间】:2015-12-06 16:55:46
【问题描述】:

这不是重复的,因为我让 curl 跟随重定向并且输出是 302 http 状态代码

我有这个代码

<?php 

$url="http://www.facebook.com/thisfburldoesnotexist";
$handle = curl_init($url);
curl_setopt($handle,  CURLOPT_RETURNTRANSFER, TRUE);
curl_exec($handle);
$httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
echo $httpCode;
curl_close($handle);
?>

获取某些页面的状态码,但是当我尝试获取这个http://www.facebook.com/thisfburldoesnotexist的状态时,响应是302,但是Chrome在调试时报告http 404

如何获得 Chrome 中报告的实际 404?

如果我使用此工具检查 url http://www.websitepulse.com/help/tools.php 它会报告我想要的内容:404 - Not Found

【问题讨论】:

    标签: php http-status-code-302


    【解决方案1】:

    发生的情况是,当您请求该不存在的页面时,facebook 会以状态码 302 或 307 的页面响应。然后,它会重定向到另一个页面,状态码为 404。

    因此您需要添加此 curl 选项,以便 curl 将跟随该重定向,并最终到达 404 页面。

    curl_setopt($handle, CURLOPT_FOLLOWLOCATION, 1);

    默认情况下,此参数设置为0,因此,就像您的情况一样,它不遵循重定向,您得到的响应只是 302 或 307 或任何 facebook 决定作为 第一响应。通过将其设置为1,它将跟随重定向。

    更多信息在这里:http://curl.haxx.se/libcurl/c/CURLOPT_FOLLOWLOCATION.html

    刚刚注意到,您实际上可以在屏幕截图中看到我在说什么。您收到的第一个响应 307。

    Chrome 浏览器和该网站上的工具确实支持重定向请求,除非按照上述配置,否则 curl 不会。

    【讨论】:

    • 如果我让你用 php 获取 404 代码,你会如何在 PHP 中做到这一点?我尝试了很多方法,但都没有为我工作......
    猜你喜欢
    • 2012-06-18
    • 1970-01-01
    • 2013-11-14
    • 2018-08-20
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    • 2011-11-22
    相关资源
    最近更新 更多