什么环境变化导致get_header返回不同的输出?

时间:2013-02-05 01:33:22

标签: php get-headers

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

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

get_headers($ url,1);
$ url是google(没有www)的http和.co.uk - 或者使用任何返回404的网址 不同产出的一个例子是:

我的服务器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,它将是“Array”(如果它命中301)。

最后我打算将$ sever存储在数据库中。我不能/不希望存储“阵列”。

感谢。

0 个答案:

没有答案