就像标题一样,我在两个不同的 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 存储在数据库中。我不能/不想将“数组”存储在那里。
谢谢。