Php 什么环境更改导致get_标头返回不同的输出?

Php 什么环境更改导致get_标头返回不同的输出?,php,get-headers,Php,Get Headers,正如标题所述,我在两个不同的PHP版本上运行相同的脚本 我的服务器1-5.2.17 我的服务器2-5.3.19 获取_头($url,1) $url是带有http和.co.uk的google(无www)——或者使用任何返回404的url 不同输出的示例如下: 我的服务器1- [Server]=>gws[从标头收集] 我的服务器2- [服务器]=>阵列[从标头收集] ( [0] => gws [1] => gws ) 我假设服务器2正在跟踪301的位置,并

正如标题所述,我在两个不同的PHP版本上运行相同的脚本

  • 我的服务器1-5.2.17
  • 我的服务器2-5.3.19
获取_头($url,1)
$url是带有http和.co.uk的google(无www)——或者使用任何返回404的url 不同输出的示例如下:

我的服务器1-

  • [Server]=>gws
    [从标头收集]
我的服务器2-

  • [服务器]=>阵列[从标头收集]

    (
        [0] => gws
        [1] => gws
    )
    
我假设服务器2正在跟踪301的位置,并将其添加到头中,其中服务器1在数组中只有301头

因此服务器2将转到“”(返回301);然后跟随它到“” 并将两个响应添加到同一输出

我的问题是——是什么导致了这种变化?我已经查看了PHP频道日志,但我看不到任何关于get_头的内容,所以我肯定遗漏了什么

如果您知道导致不同输出的原因,并且更好地了解如何恢复更改(不必更改回旧的PHP版本),我将不胜感激。我知道我可以用卷发,但我真的不想这么做

完整ish代码(无验证等)

  • 在PHP5.2中,如果我回显$server,它将类似于“Apache”

  • 在PHP5.3中,如果我回显$server,它将是“Array”(如果它命中301)

最后,我计划将$sever存储在数据库中。我不能/不希望“数组”存储在那里


谢谢。

试着消除一些变量-例如,试着在两台服务器上运行相同的版本,看看这是PHP版本还是服务器之间的差异。我不完全理解-你能扩展一下吗?。我相信我可能已经这样做了。一台(本地)服务器运行的是PHP版本5.2,另一台(本地)服务器运行的是PHP版本5.3,它们的输入相同,输出不同。一台服务器运行一个版本的PHP,另一台服务器运行另一个版本的PHP。如果在两台服务器上运行相同版本的PHP,并且输出相同,则差异是由PHP造成的。否则,这是因为其他原因。啊,这是一个非常好的主意。当我使用.htaccess找到正确的方法时,我会马上检查它。有一刻,我试图使用.htaccess将PHP更改为5.2,使用的是:AddHandler应用程序/x-httpd-php52.PHP.php5.php4.php3,但这只会导致在导航到该页面时下载该页面?。有什么想法吗?。
1.$address = ($_POST['address']);
2.$headerinfo = get_headers($url, 1);
$server = $headerinfo[Server];