У нас есть часть унаследованного кода это (ab) использование fopen()
вызовы к ресурсам по HTTP:
@fopen('http://example.com')
Мы хотим переместить example.com в другой хост и затем отправить "301 Постоянно Перемещенный", однако, мы не совсем уверены если @fopen()
будет следовать за этим.
Начальные тесты показывают мне, что это не делает. Но возможно я пропускаю некоторую часть конфигурации.
Начиная с версии 5.1.0, существует опция max_redirects , которая заставляет HTTP-оболочку fopen следовать за перенаправлением Location
:
Максимальное количество перенаправлений для выполнения. Значение 1 или меньше означает, что перенаправления не выполняются.
По умолчанию 20.
Вы можете указать это явно, если ваша конфигурация отключает это. Пример, измененный из документации:
<?php
$url = 'http://www.example.com/';
$opts = array(
'http' => array('method' => 'GET',
'max_redirects' => '20')
);
$context = stream_context_create($opts);
$stream = fopen($url, 'r', false, $context);
// header information as well as meta data
// about the stream
var_dump(stream_get_meta_data($stream));
// actual data at $url
var_dump(stream_get_contents($stream));
fclose($stream);
?>