Php 如何检测URL重定向并分离每个标头?

Php 如何检测URL重定向并分离每个标头?,php,arrays,foreach,http-status-codes,Php,Arrays,Foreach,Http Status Codes,我有一个问题:我想检测3xx响应代码的所有重定向,并将URL的每个标头分开。我研究了get_headers函数跟踪重定向,并将其放入重定向的每个组件的数组中。我知道“fb.com”重定向了3次,正如您在本页上看到的: 我想对该页面做同样的事情,并且正在尝试这样做: 但是我的PHP代码似乎是错误的。这是: <?php $header = array(); $header[] = array(); $header_url = @get_headers('http://fb.com',1);

我有一个问题:我想检测3xx响应代码的所有重定向,并将URL的每个标头分开。我研究了get_headers函数跟踪重定向,并将其放入重定向的每个组件的数组中。我知道“fb.com”重定向了3次,正如您在本页上看到的:

我想对该页面做同样的事情,并且正在尝试这样做:

但是我的PHP代码似乎是错误的。这是:

<?php
$header = array();
$header[] = array();
$header_url = @get_headers('http://fb.com',1);

/*
foreach ($header_url as $key => $value){
    echo $key . " = " . $value . "<br />";
}
*/

$a = 0;
foreach($header_url as $key => $value){
    if(is_int($key)){
        $header[$a][] = $value;
        $a++;
    } else if(!is_int($key) && !is_object($key)){
       $header[0][$key] = $value;
    } else if(!is_int($key) && is_object($key)){
        foreach ($key as $key2 => $value2){
            $header[$key2][$key] = $value2;
        }
    }
}
echo "<h1>ONE</h1>";
foreach ($header[0] as $key => $value) {
    echo $key . " = " . $value . "<br />";
}
echo "<h1>TWO</h1>";
foreach ($header[1] as $key => $value) {
    echo $key . " = " . $value . "<br />";
}
echo "<h1>THREE</h1>";
foreach ($header[2] as $key => $value) {
    echo $key . " = " . $value . "<br />";
}
?>

如果你能帮我做错事,我将不胜感激。
非常感谢,祝你有一个愉快的一天,德夫

get_headers
跟随所有重定向,只显示最终的头。您需要使用
cURL
进行细粒度控制。
get_headers
遵循所有重定向,只显示最终的头。您需要使用
cURL
进行细粒度控制。