Nur-Header-Abruf in PHP über cURL
Für einen effizienten Abruf von Dateimetadaten, wie z. B. dem Datum der letzten Änderung, sollten Sie die Verwendung des Header-Abrufs von cURL in Betracht ziehen. einzige Abruffunktion. Diese Methode kann die Verarbeitungsleistung und den Bandbreitenverbrauch auf dem Remote-Server erheblich reduzieren.
Um nur die Header abzurufen, können Sie die folgenden Optionen in Ihrer cURL-Anfrage festlegen:
curl_setopt($curl, CURLOPT_HEADER, true); curl_setopt($curl, CURLOPT_NOBODY, true);
Dies teilt cURL mit um eine HEAD-Anfrage zu senden, die den Server anweist, nur mit den HTTP-Header-Informationen zu antworten und den eigentlichen Antworttext wegzulassen.
Zuletzt geändert Datumsabruf
Um das Datum der letzten Änderung abzurufen, können Sie mit curl_getinfo() die FILETIME-Informationen aus dem cURL-Handle abrufen. Hier ist ein Beispiel:
$curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "http://url/file.xml"); curl_setopt($curl, CURLOPT_HEADER, true); curl_setopt($curl, CURLOPT_FILETIME, true); curl_setopt($curl, CURLOPT_NOBODY, true); curl_exec($curl); $filetime = curl_getinfo($curl, CURLINFO_FILETIME); // Returns timestamp of last modification curl_close($curl);
Beispielcode
Hier ist ein vollständigeres Beispiel, das das letzte Änderungsdatum einer Remote-Datei mithilfe von cURL abruft und anzeigt:
class URIInfo { public $info; public $header; private $url; public function __construct($url) { $this->url = $url; $this->setData(); } public function setData() { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $this->url); curl_setopt($curl, CURLOPT_FILETIME, true); curl_setopt($curl, CURLOPT_NOBODY, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HEADER, true); $this->header = curl_exec($curl); $this->info = curl_getinfo($curl); curl_close($curl); } public function getFiletime() { return $this->info['filetime']; } // Other functions can be added to retrieve other information. } $uri_info = new URIInfo('http://example.com/index.html'); $filetime = $uri_info->getFiletime(); if ($filetime != -1) { echo date('Y-m-d H:i:s', $filetime); } else { echo 'Filetime not available'; }
Das obige ist der detaillierte Inhalt vonWie kann ich mit cURLs Header-Only Retrieval das Datum der letzten Änderung einer Remote-Datei effizient abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!