Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用curl PHP获取最终重定向状态代码_Php_.htaccess_Redirect_Curl - Fatal编程技术网

使用curl PHP获取最终重定向状态代码

使用curl PHP获取最终重定向状态代码,php,.htaccess,redirect,curl,Php,.htaccess,Redirect,Curl,我想找到某个站点中某个网页的最终重定向状态代码。在给定的到期日之后,该网站将删除这些页面,并将您重定向到其带有404状态代码的主页 假设我想去的一个页面是http://example.com/my-page此页面已不存在。所以它会将我重定向到http://example.com/。我用chrome开发者工具检查了一下,它发送了一个404状态码 现在问题来了。我想检查一下这个页面是否是404。我有以下PHP函数 function findStatus($url) {

我想找到某个站点中某个网页的最终重定向状态代码。在给定的到期日之后,该网站将删除这些页面,并将您重定向到其带有404状态代码的主页

假设我想去的一个页面是
http://example.com/my-page
此页面已不存在。所以它会将我重定向到
http://example.com/
。我用chrome开发者工具检查了一下,它发送了一个404状态码

现在问题来了。我想检查一下这个页面是否是404。我有以下PHP函数

    function findStatus($url)
    {
        $handle = curl_init($url);
        curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE);

        /* Check for 404 (file not found). */
        $httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);

        curl_close($handle);

        if ($httpCode == 404) {
            return true;
        } else {
            return false;
        }

    }
当我用上面的函数检查相关页面时,我得到302永久重定向。我猜这个函数在重定向之前会得到状态码


描述如何获取URL,但不获取状态代码。页面重定向完成后,如何获取状态代码?

既然您找到了答案:

你离它很近
curl\u getinfo()
可以获取大量信息

$url = 'http://localhost:8080/loc.php';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);

$html = curl_exec($ch);

$info = curl_getinfo($ch);

curl_close($ch);

print_r($info);
# Array
# (
#     [url] => http://localhost:8080/dest.php
#     [content_type] => text/html; charset=UTF-8
#     [http_code] => 404