Обнаружение, где завихрение было перенаправлено

Если это имеет значение кэширование является ГРЯЗЬЮ, ПРОСТОЙ в PHP даже без пакета расширения/помощника как memcached.

Все, что необходимо сделать, создают буфер вывода с помощью ob_start().

Создают функцию глобального кэша. Назовите ob_start, передайте функцию как обратный вызов. В функции ищите кэшированную версию страницы. Если существует, служите ему и конец.

, Если это не существует, сценарий продолжит обрабатывать. Когда это достигнет соответствия ob_end (), это вызовет функцию, которую Вы определили. В то время Вы просто получаете содержание буфера вывода, отбрасываете их в файле, сохранили файл и конец.

Добавляют в некотором истечении/сборке "мусора".

И многие люди не понимают, что можно вложить ob_start() / ob_end() вызовы. Таким образом, если Вы уже используете буфер вывода, чтобы, скажем, проанализировать в рекламных объявлениях или сделать подсветку синтаксиса или что бы то ни было, можно просто вложить другой ob_start/ob_end вызов.

5
задан Tim Post 6 November 2009 в 15:01
поделиться

3 ответа

Вы можете сделать что-то вроде:

curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); // returns the last effective URL
6
ответ дан 14 December 2019 в 08:53
поделиться
$ch = curl_init( "http://websitethatredirects.com" );
$curlParams = array(
   CURLOPT_FOLLOWLOCATION => true,
);
curl_setopt_array( $ch, $curlParams );
$ret = curl_exec( $ch );
$info = curl_getinfo( $ch );
print $info['url'];

Это покажет вам URL-адрес, на который вы в конечном итоге были перенаправлены.

2
ответ дан 14 December 2019 в 08:53
поделиться

Если вам не нужно последнее тело, вы можете сделать это следующим образом:

Установите CURLOPT_HEADER и CURLOPT_NOBODY . Заголовок «Местоположение» должен быть возвращен и будет содержать новый URL-адрес. Затем при необходимости выполните запрос с новым URL-адресом.

-1
ответ дан 14 December 2019 в 08:53
поделиться
Другие вопросы по тегам:

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