Будет PHPs fopen следовать за 301 перенаправлением?

У нас есть часть унаследованного кода это (ab) использование fopen() вызовы к ресурсам по HTTP:

@fopen('http://example.com')

Мы хотим переместить example.com в другой хост и затем отправить "301 Постоянно Перемещенный", однако, мы не совсем уверены если @fopen() будет следовать за этим.

Начальные тесты показывают мне, что это не делает. Но возможно я пропускаю некоторую часть конфигурации.

7
задан Kirk Beard 13 December 2018 в 05:33
поделиться

1 ответ

Начиная с версии 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);
?>
5
ответ дан 7 December 2019 в 12:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: