Ist es möglich, nur eine HTTP-Anfrage zu senden, um den Zeitpunkt der letzten Änderung zu bekommen?

StackOverflow https://stackoverflow.com/questions/1806686

  •  05-07-2019
  •  | 
  •  

Frage

Anstelle der Datei selbst?

Bearbeiten

Am besten mit einem Demo in PHP?

War es hilfreich?

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)

  1. If-Modified-Since
  2. If-None-Match
  3. 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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top