Скачать файл и сохранить метку времени?

Как следует из названия, есть ли быстрый способ загрузить файл, но взять с собой временную метку?

Я пишу основной кэш, который, среди других проверок, определяет (через get_headers) если данный локальный файл совпадает с его удаленным аналогом.

я знаю что могу file_get_contents / file_put_contents а потом touch() файл с результатами get_headers, но вызов, который выполняет другой HTTP-вызов (даже если это вызов HEAD), и я хотел бы только проверить Last-Modified как последнее средство.

Так есть ли быстрый способ «одного HTTP-вызова» загрузить файл и сохранить временную метку? Некоторые удаленные файлы живут на FTP-сервере, но многие являются текстовыми файлами и / или живут на веб-сервере.

РЕДАКТИРОВАТЬ: Кто-то предложил связанный вопрос, но мой вопрос отличается в том, что я ищу, чтобы получить удаленную модифицированную дату без необходимости повторного вызова, который copy() основанный ответ предполагает

$http_response_header кажется, добивается цели, как предложено ниже.

1

Решение

Вы можете получить в кеше Last-Modified от $http_response_header и использовать его, чтобы коснуться файла.

Полностью автоматизировать его, очевидно, невозможно, так как поток не может знать, где вы собираетесь его хранить.

1

Другие решения

Вы можете использовать filemtime (), чтобы получить дату последнего изменения, а затем нажать (), чтобы изменить дату / время последнего изменения

Источник: PHP копия файла без изменения даты последнего изменения

0

if (file_exists($cache_file) && (filemtime($cache_file) > (time() - 60 * 5 ))) {
// Cache file is less than five minutes old.
// Don't bother refreshing, just use the file as-is.
$file = file_get_contents($cache_file);
} else {
// Our cache is out-of-date, so load the data from our remote server,
// and also save it over our cache for next time.
$file = file_get_contents($url);
file_put_contents($cache_file, $file, LOCK_EX);
}
0
По вопросам рекламы [email protected]