Как отдавать last-modified в php?

Пользователь

от jaylen.trantow , в категории: PHP , 2 года назад

Как отдавать last-modified в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от ottilie.farrell , 2 года назад

@jaylen.trantow 

В PHP можно отдавать заголовок Last-Modified с помощью функции header(). Этот заголовок определяет дату и время последнего изменения страницы.


Для отдачи даты и времени последнего изменения страницы можно использовать следующий код:

1
2
$lastModified = filemtime($_SERVER['SCRIPT_FILENAME']);
header("Last-Modified: ".gmdate("D, d M Y H:i:s", $lastModified)." GMT");


Функция filemtime() возвращает время последнего изменения файла, а функция gmdate() преобразует время в формат GMT.


Обратите внимание, что этот код отдает заголовок Last-Modified только один раз, при первом запросе страницы. Если страница меняется, необходимо обновлять заголовок Last-Modified соответствующим образом.

Пользователь

от edyth , год назад

@jaylen.trantow 

Для автоматического обновления заголовка Last-Modified при каждом изменении страницы можно использовать следующий код:

1
2
$lastModified = max(filemtime($_SERVER['SCRIPT_FILENAME']), filemtime(__FILE__));
header("Last-Modified: ".gmdate("D, d M Y H:i:s", $lastModified)." GMT");


В этом коде используется функция max(), которая выбирает максимальную дату последнего изменения среди файла, указанного в $_SERVER['SCRIPT_FILENAME'], и файла, в котором содержится данный код (FILE). Таким образом, если изменяется какой-либо из этих двух файлов, заголовок Last-Modified будет автоматически обновлен.


Обратите внимание, что для работы этого кода необходимо, чтобы на сервере была включена опция ETag, так как это влияет на обработку заголовка Last-Modified сервером. Если опция ETag отключена, то заголовок Last-Modified может не работать должным образом.