Решение: Отключить перенаправление. Обычно это включает в себя замену DNS-серверов на те , а не , управляемые вашим провайдером.
Обходной путь: Вызовите <a href="http://php.net/stream_get_meta_data" rel="nofollow">stream_get_meta_data</a>()
на ресурсе, возвращенном fopen()
. В случае протокола http:
возвращаемый массив будет иметь элемент wrapper_data
, содержащий все заголовки ответа HTTP. Обратите внимание, что если задействованы перенаправления, все ответы будут в том же массиве, как в примере ниже.
$ php -r '$a = fopen("http://www.google.com/", "r"); print_r(stream_get_meta_data($a));'
Array
(
<b> [wrapper_data] => Array
(
[0] => HTTP/1.0 302 Found
[1] => Location: http://www.google.co.uk/
[2] => Cache-Control: private
[3] => Content-Type: text/html; charset=UTF-8
[4] => Set-Cookie: PREF=ID=5e6e2f87c95ce139:FF=0:TM=1317669253:LM=1317669253:S=uaGlatRCh9XB8oAI; expires=Wed, 02-Oct-2013 19:14:13 GMT; path=/; domain=.google.com
[5] => Date: Mon, 03 Oct 2011 19:14:13 GMT
[6] => Server: gws
[7] => Content-Length: 221
[8] => X-XSS-Protection: 1; mode=block
[9] => HTTP/1.0 200 OK
[10] => Date: Mon, 03 Oct 2011 19:14:13 GMT
[11] => Expires: -1
[12] => Cache-Control: private, max-age=0
[13] => Content-Type: text/html; charset=ISO-8859-1
[14] => Set-Cookie: PREF=ID=9c5c0212c24c4ca1:FF=0:TM=1317669253:LM=1317669254:S=P7nzy5lBsmvuZm8A; expires=Wed, 02-Oct-2013 19:14:14 GMT; path=/; domain=.google.co.uk
[15] => Set-Cookie: NID=51=J8T2rxPOdsbfWlIWhWIdL4uerFqLibBV2LDh81OdqmfvRvq3zXwAJ7tsNEmBby_h2wT4Qv8Wd7QK6CyG-leo9mgR4RbFeNpw83mMGlvCHhU0uiUv6ki2doinv1EBU5XM; expires=Tue, 03-Apr-2012 19:14:14 GMT; path=/; domain=.google.co.uk; HttpOnly
[16] => Server: gws
[17] => X-XSS-Protection: 1; mode=block
)
</b>
[wrapper_type] => http
[stream_type] => tcp_socket/ssl
[mode] => r
[unread_bytes] => 4096
[seekable] =>
[uri] => http://www.google.com/
[timed_out] =>
[blocked] => 1
[eof] =>
)