Чтобы получить дату последнего изменения удаленного файла в 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()файловой системы для получения дата последнего изменения.