2

就像标题一样,我在两个不同的 PHP 版本上运行相同的脚本。

  • 我的服务器 1- 5.2.17
  • 我的服务器 2- 5.3.19

get_headers($url, 1);
$url 是带有 http 和 .co.uk 的 google(没有 www)——或者使用任何返回 404 的 url 不同输出的示例是:

我的服务器 1-

  • [Server] => gws [从标题中收集]

我的服务器 2-

  • [服务器] => 数组 [从标题中收集]

    (
        [0] => gws
        [1] => gws
    )
    

我假设服务器 2 遵循 301 的位置并将其添加到标题中,其中服务器 1 在数组中只有 301 标题。

所以服务器 2 将转到“ http://google.co.uk ”(返回 301);然后跟随它到“ http://www.google.co.uk/ ”并将两个响应添加到相同的输出中。

我的问题是——是什么导致了这种变化?我检查了 PHP 频道日志,但看不到对 get_headers 的提及,所以我一定遗漏了一些东西。

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

完整的代码(没有验证等)

1.$address = ($_POST['address']);
2.$headerinfo = get_headers($url, 1);
$server = $headerinfo[Server]; 
  • 在 PHP 5.2 中 - 如果我回显 $server 它会类似于“Apache”。

  • 在 PHP 5.3 - 如果我回显 $server 它将是“数组”(如果它达到 301)。

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

谢谢。

4

0 回答 0