Если это имеет значение кэширование является ГРЯЗЬЮ, ПРОСТОЙ в PHP даже без пакета расширения/помощника как memcached.
Все, что необходимо сделать, создают буфер вывода с помощью ob_start()
.
Создают функцию глобального кэша. Назовите ob_start
, передайте функцию как обратный вызов. В функции ищите кэшированную версию страницы. Если существует, служите ему и конец.
, Если это не существует, сценарий продолжит обрабатывать. Когда это достигнет соответствия ob_end (), это вызовет функцию, которую Вы определили. В то время Вы просто получаете содержание буфера вывода, отбрасываете их в файле, сохранили файл и конец.
Добавляют в некотором истечении/сборке "мусора".
И многие люди не понимают, что можно вложить ob_start()
/ ob_end()
вызовы. Таким образом, если Вы уже используете буфер вывода, чтобы, скажем, проанализировать в рекламных объявлениях или сделать подсветку синтаксиса или что бы то ни было, можно просто вложить другой ob_start/ob_end
вызов.
Вы можете сделать что-то вроде:
curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); // returns the last effective URL
$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-адрес, на который вы в конечном итоге были перенаправлены.
Если вам не нужно последнее тело, вы можете сделать это следующим образом:
Установите CURLOPT_HEADER
и CURLOPT_NOBODY
. Заголовок «Местоположение» должен быть возвращен и будет содержать новый URL-адрес. Затем при необходимости выполните запрос с новым URL-адресом.