Главная
>
PHP,
SEO > Выдача Last-Modified, а также работа с If-Modified-Since в PHP-скриптах
Выдача Last-Modified, а также работа с If-Modified-Since в PHP-скриптах
Выдача Last-Modified, а также работа с If-Modified-Since в PHP-скриптах
<?php
// Определяем дату модификации скрипта и выдаем Last-Modified
$last_modified = filemtime($SCRIPT_FILENAME);
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $last_modified) . ' GMT');
// Пытаемся получить содержимое If-Modified-Since
foreach($_SERVER as $name => $value) {
if($name == 'HTTP_IF_MODIFIED_SINCE')
$modified_since = $value; }
// Пытаемся преобразовать значение в Unix time
if (isset($modified_since)) {
$modified_since = strtotime(preg_replace('/;.*$/', '', $modified_since));
} else {
$modified_since = 0; }
// Сравниваем даты и выдаем заголовок, если требуется
if ($last_modified <= $modified_since) {
header('HTTP/1.1 304 Not Modified');
exit(); }
?>
Спасибо, за разработанный скрипт, у себя мы его тоже закрепим. (avkuzmin.ru/2007/03/last-modified-if-modified-since-php.html)
«foreach($_SERVER as $name => $value)» А зачем так сложно?
if (array_key_exists(‘HTTP_IF_MODIFIED_SINCE’,$_SERVER)) не по проще будет?
Или еще проще if (!empty($_SERVER[‘HTTP_IF_MODIFIED_SINCE’])) ?
И как бы $_SERVER[‘HTTP_CACHE_CONTROL] еще нужно посмотреть, прежде чем exit() делать.