Start · Sprachen · PHP · Referenz · http_clear_last_response_headers

http_clear_last_response_headers

Funktion

Löscht die intern gespeicherten HTTP-Antwort-Header des zuletzt ausgeführten <code>http_get()</code>-, <code>http_post()</code>- oder ähnlichen HTTP-Requests.

Kategorie: http

Signatur

http_clear_last_response_headers(): void

Beschreibung

http_clear_last_response_headers() entfernt alle intern gecachten HTTP-Antwort-Header, die durch den zuletzt ausgeführten HTTP-Request (z. B. via http_get() oder http_post()) gespeichert wurden. Diese Header sind normalerweise über http_get_last_response_headers() abrufbar.

Die Funktion ist nützlich, wenn innerhalb eines Skripts mehrere aufeinanderfolgende HTTP-Requests gemacht werden und sichergestellt werden soll, dass beim Auslesen der Antwort-Header keine veralteten Daten eines vorherigen Requests vorhanden sind. Durch das explizite Löschen wird eine saubere Trennung der Request-Kontexte erreicht.

Typischerweise wird diese Funktion als Teil der PECL-Erweiterung pecl_http (HTTP-Extension) bereitgestellt. Sie steht daher nur zur Verfügung, wenn diese Erweiterung installiert und aktiviert ist.

Rückgabewert

Typ
void
Beschreibung
Die Funktion gibt keinen Wert zurück.

Beispiele

Header nach HTTP-Request löschen und erneut abrufen

<?php
// Ersten HTTP-Request durchführen
$response1 = http_get('https://example.com/api/endpoint1');
$headers1 = http_get_last_response_headers();
echo "Headers nach erstem Request:\n";
print_r($headers1);

// Gespeicherte Header löschen, bevor der nächste Request erfolgt
http_clear_last_response_headers();

// Zweiten HTTP-Request durchführen
$response2 = http_get('https://example.com/api/endpoint2');
$headers2 = http_get_last_response_headers();
echo "Headers nach zweitem Request:\n";
print_r($headers2);

Prüfen, ob Header nach dem Löschen leer sind

<?php
// HTTP-Request ausführen
$response = http_get('https://example.com/');

// Header auslesen
$headersBefore = http_get_last_response_headers();
echo "Anzahl Header vor dem Löschen: " . count($headersBefore) . "\n";

// Header löschen
http_clear_last_response_headers();

// Nach dem Löschen sollten keine Header mehr vorhanden sein
$headersAfter = http_get_last_response_headers();
echo "Anzahl Header nach dem Löschen: " . count($headersAfter) . "\n";
Anzahl Header vor dem Löschen: 12 Anzahl Header nach dem Löschen: 0

// Wichtig · Fallstricke

Achtung: Diese Funktion ist Teil der PECL-Erweiterung pecl_http und steht nicht im Standard-PHP-Kern zur Verfügung. Sie muss über PECL installiert werden (pecl install pecl_http). Die API kann sich je nach Version der Erweiterung unterscheiden.

In neueren Versionen der HTTP-Erweiterung (v2+) wurde die API grundlegend objektorientiert umgestaltet. Prozedurale Funktionen wie http_clear_last_response_headers() sind möglicherweise nur in der älteren Version 1.x verfügbar. Für moderne Projekte empfiehlt sich die objektorientierte API oder die Verwendung von Bibliotheken wie Guzzle.