就像标题所述,我在两个不同的PHP版本上运行相同的脚本。
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存储在数据库中。我不能/不希望存储“阵列”。
感谢。