Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich sowohl Header als auch Text aus einer cURL-Anfrage in PHP extrahieren?

Wie kann ich sowohl Header als auch Text aus einer cURL-Anfrage in PHP extrahieren?

DDD
DDDOriginal
2024-12-20 01:07:17439Durchsuche

How Can I Extract Both Headers and Body from a cURL Request in PHP?

Header und Body aus cURL-Anfragen in PHP extrahieren

Die PHP-cURL-Bibliothek bietet eine praktische Möglichkeit, HTTP-Anfragen zu senden. Standardmäßig ruft cURL nur den Antworttext ab. Es kann jedoch vorkommen, dass Sie in einer einzigen Anfrage auf die Header und den Text zugreifen müssen, ohne eine separate HEAD-Anfrage zu stellen.

Lösung: Header und Text trennen

Um sowohl Header als auch Text in einer einzigen cURL-Anfrage abzurufen, können Sie Folgendes verwenden Schritte:

  1. Führen Sie die cURL-Anfrage mit curl_exec() mit den folgenden Optionen aus:

    • CURLOPT_RETURNTRANSFER: Auf 1 setzen, um die Antwort als Zeichenfolge zurückzugeben.
    • CURLOPT_HEADER: Auf 1 setzen, um die Antwortheader in die einzuschließen Ausgabe.
  2. Nachdem Sie die Anfrage ausgeführt haben, erhalten Sie die Antwort mit $response.
  3. Berechnen Sie die Größe der HTTP-Header mit curl_getinfo($ch, CURLINFO_HEADER_SIZE) und speichern Sie sie in $header_size.
  4. Extrahieren Sie die Header aus $response, indem Sie den Teilstring nehmen bis zu $header_size. Speichern Sie die Header in $header.
  5. Extrahieren Sie den Text aus $response, indem Sie den Teilstring von $header_size bis zum Ende des Strings übernehmen. Speichern Sie den Körper in $body.

Beispielcode:

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
// ...

$response = curl_exec($ch);

$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$body = substr($response, $header_size);

Hinweis: Beachten Sie, dass dies bei dieser Methode möglicherweise nicht der Fall ist In allen Fällen zuverlässig, insbesondere im Umgang mit Proxy-Servern oder bestimmten Arten von Weiterleitungen.

Das obige ist der detaillierte Inhalt vonWie kann ich sowohl Header als auch Text aus einer cURL-Anfrage in PHP extrahieren?. 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