У нас есть часть устаревшего кода, который (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); ?>