Wie kann ich mit cURLs Header-Only Retrieval das Datum der letzten Änderung einer Remote-Datei effizient abrufen?

Barbara Streisand
Freigeben: 2024-11-16 02:51:03
Original
663 Leute haben es durchsucht

How to Efficiently Retrieve Last Modified Date of a Remote File using cURL's Header-Only Retrieval?

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);
Nach dem Login kopieren

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);
Nach dem Login kopieren

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';
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage