Получить дату последнего изменения удаленного файла в PHP

Чтобы получить дату последнего изменения удаленного файла в PHP, вы можете использовать несколько методов. Вот несколько примеров:

Метод 1: использование функции get_headers()

$url = 'https://example.com/remote_file.txt';
$headers = get_headers($url, true);
if ($headers && isset($headers['Last-Modified'])) {
    $lastModified = $headers['Last-Modified'];
    echo "Last modified date: " . $lastModified;
} else {
    echo "Last modified date not available";
}

Метод 2: использование cURL

$url = 'https://example.com/remote_file.txt';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
$response = curl_exec($ch);
if (!curl_errno($ch)) {
    $info = curl_getinfo($ch);
    if (isset($info['header_size'])) {
        $headers = substr($response, 0, $info['header_size']);
        if (preg_match('/Last-Modified:\s(.+)/', $headers, $matches)) {
            $lastModified = $matches[1];
            echo "Last modified date: " . $lastModified;
        } else {
            echo "Last modified date not available";
        }
    }
}
curl_close($ch);

Метод 3: использование функции filemtime()(работает только в том случае, если удаленный файл доступен через файловую систему)

$url = 'https://example.com/remote_file.txt';
$filename = basename($url);
$localFilePath = '/path/to/local/directory/' . $filename;
if (copy($url, $localFilePath)) {
    $lastModified = filemtime($localFilePath);
    echo "Last modified date: " . date("Y-m-d H:i:s", $lastModified);
    unlink($localFilePath); // Remove the temporary file
} else {
    echo "Failed to copy the remote file";
}

Обратите внимание, что первые два метода извлекают дату последнего изменения непосредственно из заголовков HTTP-ответа, а третий метод загружает файл локально, а затем использует функцию filemtime()файловой системы для получения дата последнего изменения.