PHP get_headers 递归
PHP get_headers recursively
我正在尝试实现 header 响应以递归地遵循 header 重定向。我已经实现了以下对于第一个请求正确工作的方法,但是如果在 header 中找到位置重定向,get_headers 不会 return 重定向位置的任何结果。我想为每个 header 请求显示 header。
这就是我所做的。
function redirectURL($domain) {
$newLocation = '';
$domain = str_replace("\r", "", $domain);
$headers=get_headers($domain);
echo "<ul class='list-group' >";
print "<li class='list-group-item'>".$domain. "</li>";
foreach($headers as $k=>$v){
print "<li class='list-group-item'>".$k . ": " . $v . "</li>";
if(strstr($v, 'Location')){
$location = explode(":",$v);
$newLocation = $location[1].":".$location[2];
}
}
echo "</ul>";
if($newLocation != $domainName && $newLocation != ''){
redirectURL($newLocation);
}
unset($headers);
return true;
}
有什么想法吗?我有一个在线实现......如果需要查看工作代码。
谢谢
好吧,这只是糟糕的编码。我让它工作了。
这是一个工作代码
function redirectURL($domainName) {
$i=0;
$newLocation = '';
$isNew = false;
$headers = array();
$domainName = str_replace("\r", "", $domainName);
$headers=get_headers($domainName,1);
echo "<ul class='list-group' >";
print "<li class='list-group-item'><strong>".$domainName. "</strong></li>";
foreach($headers as $k => $v){
print "<li class='list-group-item'>".$k . ": " . $v . "</li>";
if($k == 'Location'){
$newLocation = $v;
$isNew = true;
print "<li class='list-group-item'><strong>".$k . ": " . $v . "</strong></li>";
}
}
echo "</ul>";
unset($headers);
//limit recurse to $i < 4 to avoid overload
if($isNew){
$i++;
if($i<4) {redirectURL($newLocation);}
}
return true;
}
您可以在 https://www.neting.it/risorse-internet/controlla-redirect-server.html
查看工作脚本
我正在尝试实现 header 响应以递归地遵循 header 重定向。我已经实现了以下对于第一个请求正确工作的方法,但是如果在 header 中找到位置重定向,get_headers 不会 return 重定向位置的任何结果。我想为每个 header 请求显示 header。
这就是我所做的。
function redirectURL($domain) {
$newLocation = '';
$domain = str_replace("\r", "", $domain);
$headers=get_headers($domain);
echo "<ul class='list-group' >";
print "<li class='list-group-item'>".$domain. "</li>";
foreach($headers as $k=>$v){
print "<li class='list-group-item'>".$k . ": " . $v . "</li>";
if(strstr($v, 'Location')){
$location = explode(":",$v);
$newLocation = $location[1].":".$location[2];
}
}
echo "</ul>";
if($newLocation != $domainName && $newLocation != ''){
redirectURL($newLocation);
}
unset($headers);
return true;
}
有什么想法吗?我有一个在线实现......如果需要查看工作代码。 谢谢
好吧,这只是糟糕的编码。我让它工作了。 这是一个工作代码
function redirectURL($domainName) {
$i=0;
$newLocation = '';
$isNew = false;
$headers = array();
$domainName = str_replace("\r", "", $domainName);
$headers=get_headers($domainName,1);
echo "<ul class='list-group' >";
print "<li class='list-group-item'><strong>".$domainName. "</strong></li>";
foreach($headers as $k => $v){
print "<li class='list-group-item'>".$k . ": " . $v . "</li>";
if($k == 'Location'){
$newLocation = $v;
$isNew = true;
print "<li class='list-group-item'><strong>".$k . ": " . $v . "</strong></li>";
}
}
echo "</ul>";
unset($headers);
//limit recurse to $i < 4 to avoid overload
if($isNew){
$i++;
if($i<4) {redirectURL($newLocation);}
}
return true;
}
您可以在 https://www.neting.it/risorse-internet/controlla-redirect-server.html
查看工作脚本