Можно ли отправить http-запрос только для того, чтобы получить время последнего изменения?
Вопрос
Вместо самого файла?
Редактировать
Лучше всего использовать демо-версию на PHP?
Решение
<?php
// Get Headers
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://example.com/');
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$response = curl_exec($ch);
// Process Headers
$headerLines = explode("\r\n", $response);
foreach ($headerLines as $headerLine) {
$headerLineParts = explode(': ', $headerLine);
if (count($headerLineParts) >= 2) {
$headers[$headerLineParts[0]] = $headerLineParts[1];
}
}
echo $headers['Last-Modified'];
?>
Другие советы
ДА.Метод "HEAD" возвращает только заголовки ответов, а не фактические данные.
Вы можете использовать функцию get_headers в php
$a = get_headers('http://sstatic.net/so/img/logo.png');
print_r($a);
В вашем HTTP-запросе вы должны добавить любой из эти атрибуты заголовка, и вы можете получить номер 304 (Последнее изменение).
- Если-Изменено-С тех пор, Как
- If-None-Совпадение
- If-Неизмененный-Поскольку
Андрей прав, HEAD получит только заголовки.Мое предложение вернет только заголовок и никакого тела, если будут выполнены условия.Если содержимое было обновлено, основной текст будет содержать новую информацию.
Вам нужно написать какой-нибудь сервис для обработки http-запроса и извлечения даты последнего изменения для запрошенного файла и возврата даты в ответ.
Не связан с StackOverflow