Php 如何检测URL重定向并分离每个标头?
我有一个问题:我想检测3xx响应代码的所有重定向,并将URL的每个标头分开。我研究了get_headers函数跟踪重定向,并将其放入重定向的每个组件的数组中。我知道“fb.com”重定向了3次,正如您在本页上看到的: 我想对该页面做同样的事情,并且正在尝试这样做: 但是我的PHP代码似乎是错误的。这是: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);
<?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
进行细粒度控制。