Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich mit cURL nur Header in PHP abrufen?

Wie kann ich mit cURL nur Header in PHP abrufen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-10 12:02:02695Durchsuche

How can I Retrieve Only Headers in PHP using cURL?

Nur-Header-Abruf über cURL in PHP

Dieser Artikel befasst sich mit zwei Anfragen bezüglich der Verwendung von cURL in PHP zum Abrufen nur von Headern statt Ganzseitige Daten mit Schwerpunkt auf Verarbeitungseffizienz und spezifischen Implementierungsherausforderungen.

Verarbeitung Effizienz

Ja, es gibt eine Reduzierung sowohl der Verarbeitungsleistung als auch des Bandbreitenverbrauchs auf dem Remote-Server, wenn nur Header abgerufen werden, verglichen mit dem Abruf der gesamten Seite. Dies liegt daran, dass der Server den Aufwand für die Generierung und Analyse des HTML-Inhalts vermeiden kann, was zu einer geringeren Last führt.

Änderungsdatum der Datei abrufen

Zum Abrufen der zuletzt geänderten Datei Datum (Last-Modified-Header) oder den If-Modified-Since-Header einer Remote-Datei können die folgenden Schritte ausgeführt werden übernommen:

<?php
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'];
    }
}

$filetime = (new URIInfo('http://www.example.com/file.xml'))->getFiletime();
if ($filetime != -1) {
    echo date('Y-m-d H:i:s', $filetime);
} else {
    echo 'filetime not available';
}
?>

Dieser Ansatz verwendet eine Klasse, um die Funktionalität zum Abrufen von Header-Informationen und zum Extrahieren des zuletzt geänderten Headers zu kapseln.

Implementierungsherausforderungen

Der von Ihnen bereitgestellte Originalcode hat versucht, das Datum der letzten Änderung mithilfe von „curl_getinfo($header)“ abzurufen, was falsch ist. curl_getinfo() sollte mit dem cURL-Handle ($curl) verwendet werden, um Header-Informationen abzurufen. Darüber hinaus sollte die Verwendung von CURLOPT_FILETIME ausreichen, um das Datum der letzten Änderung abzurufen.

Zusammenfassend lässt sich sagen, dass der Nur-Header-Abruf mit cURL in PHP möglicherweise die Serverlast reduzieren kann und Ihnen gleichzeitig den Zugriff auf bestimmte Header-Informationen ermöglicht. Indem Sie die oben beschriebenen Richtlinien befolgen, können Sie diese Funktion effektiv in Ihrem Code implementieren.

Das obige ist der detaillierte Inhalt vonWie kann ich mit cURL nur Header in PHP abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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