Start · Sprachen · PHP · Referenz · litespeed_response_headers

litespeed_response_headers

Funktion

Liefert ein assoziatives Array aller bisher gesendeten HTTP-Antwort-Header (Alias von <code>apache_response_headers()</code>).

seit PHP 5.0.0 Kategorie: misc

Signatur

litespeed_response_headers(): array|false

Beschreibung

litespeed_response_headers() ist ein Alias der Funktion apache_response_headers() und gibt alle aktuell gesetzten HTTP-Antwort-Header als assoziatives Array zurück. Die Funktion ist speziell für den Einsatz unter dem LiteSpeed-Webserver gedacht, verhält sich jedoch identisch zu ihrem Apache-Gegenstück.

Mit dieser Funktion lässt sich zur Laufzeit überprüfen, welche Header bereits für die Antwort registriert wurden – zum Beispiel Content-Type, Cache-Control oder selbst gesetzte Header via header(). Dies ist besonders nützlich beim Debuggen oder beim Aufbau von Middleware-Schichten, die Header-Informationen auswerten müssen, bevor die Ausgabe abgeschlossen wird.

Die Funktion muss vor dem Senden des eigentlichen HTTP-Antwortkörpers aufgerufen werden (d. h. bevor ob_flush(), flush() oder das Ende des Skripts die Header endgültig absenden), um zuverlässig alle gesetzten Header zurückzuliefern. Die Schlüssel des Arrays entsprechen den Header-Namen, die Werte den jeweiligen Header-Werten.

Da es sich um einen Alias handelt, ist die Funktion nur dann verfügbar, wenn PHP unter dem LiteSpeed-Webserver (LSAPI) oder dem Apache-Webserver betrieben wird. In anderen Serverumgebungen (z. B. Nginx mit PHP-FPM) steht sie möglicherweise nicht zur Verfügung.

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein assoziatives Array zurück, dessen Schlüssel die Header-Namen und dessen Werte die entsprechenden Header-Werte sind. Im Fehlerfall (z. B. in einer nicht unterstützten Serverumgebung) wird false zurückgegeben.

Beispiele

Alle Antwort-Header vor der Ausgabe auflisten

<?php
// Einen eigenen Header setzen
header('X-Powered-By: MeineApp/1.0');
header('Cache-Control: no-store, no-cache');

// Alle aktuellen Antwort-Header abrufen
$headers = litespeed_response_headers();

if ($headers !== false) {
    foreach ($headers as $name => $value) {
        echo htmlspecialchars($name) . ': ' . htmlspecialchars($value) . PHP_EOL;
    }
} else {
    echo 'Antwort-Header konnten nicht abgerufen werden.';
}
X-Powered-By: MeineApp/1.0 Cache-Control: no-store, no-cache Content-Type: text/html; charset=UTF-8

Prüfen, ob ein bestimmter Header bereits gesetzt ist

<?php
header('Content-Type: application/json');

$headers = litespeed_response_headers();

if ($headers !== false && isset($headers['Content-Type'])) {
    echo 'Content-Type ist gesetzt: ' . $headers['Content-Type'];
} else {
    echo 'Content-Type ist noch nicht gesetzt.';
}
Content-Type ist gesetzt: application/json

// Wichtig · Fallstricke

Verfügbarkeit: Die Funktion steht nur unter dem LiteSpeed-Webserver (via LSAPI) oder dem Apache-Webserver zur Verfügung. Unter Nginx oder anderen Servern mit PHP-FPM ist sie nicht verfügbar und führt zu einem fatalen Fehler. Vor dem Einsatz sollte daher mit function_exists('litespeed_response_headers') die Verfügbarkeit geprüft werden.

Alias: Da es sich um einen Alias von apache_response_headers() handelt, empfiehlt es sich für portablen Code, stattdessen apache_response_headers() zu verwenden oder zunächst zu prüfen, welche Funktion verfügbar ist.

Zeitpunkt des Aufrufs: Die zurückgegebenen Header spiegeln nur die zum Zeitpunkt des Funktionsaufrufs registrierten Header wider. Nachträglich gesetzte Header erscheinen nicht in bereits abgerufenen Ergebnissen.