Ist es möglich, nur eine HTTP-Anfrage zu senden, um den Zeitpunkt der letzten Änderung zu bekommen?
Frage
Anstelle der Datei selbst?
Bearbeiten
Am besten mit einem Demo in PHP?
Lösung
<?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'];
?>
Andere Tipps
Ja. Die „HEAD“ Methode gibt nur die Antwort-Header und nicht die Daten selbst.
Sie können PHP get_headers Funktion
verwenden$a = get_headers('http://sstatic.net/so/img/logo.png');
print_r($a);
In Ihrer HTTP-Anforderung sollten Sie ein diese Header-Attribute, und Sie können erhalten ein 304 (Zuletzt geändert)
- If-Modified-Since
- If-None-Match
- If-Unveränderte-Since
Andrei ist richtig, HEAD wird nur die Header erhalten. Mein Vorschlag wird wieder nur den Header und keinen Körper, wenn die condictions erfüllt sind. Wenn der Inhalt der Körper enthält die neuen Informationen aktualisiert wurde.
Sie benötigen einen Dienst zu schreiben, die HTTP-Anforderung zu handhaben und das Datum der letzten Änderung für die angeforderte Datei extrahieren und das Datum als Antwort zurück.