Aktueller Standort: Startseite> Neueste Artikel> Verwenden Sie Headers_Sent (), um zu überprüfen, ob der Header eingestellt werden kann

Verwenden Sie Headers_Sent (), um zu überprüfen, ob der Header eingestellt werden kann

M66 2025-05-17

In PHP wird die Header () -Funktion verwendet, um ursprüngliche HTTP -Header -Informationen wie Umleitungen, Einstellen von Cookies, Änderungen von Inhaltstypen usw. zu senden. Dies liegt daran, dass PHP nach Beginn der Ausgabe den HTTP -Header automatisch sendet.

Um Fehler beim Aufrufen von Header () zu vermeiden, können wir die Funktion Header_Sent () verwenden, um festzustellen, ob der Header gesendet wurde.

Was ist Headers_Sent () ?

Headers_Sent () ist eine integrierte Funktion, die von PHP bereitgestellt wird, um zu überprüfen, ob HTTP-Header-Informationen an den Browser gesendet wurden. Die grundlegende Nutzung ist wie folgt:

 if (!headers_sent()) {
    header('Location: https://m66.net/some-page');
    exit;
}

Wenn der Header noch nicht gesendet wurde, gibt Header_Sent () false zurück und gibt an, dass Header () sicher aufgerufen werden kann. Wenn dies der Fall ist , bedeutet dies, dass der Header gesendet wurde und bei dem Aufrufen von Header () ein Fehler gemeldet wird.

Überprüfen Sie den spezifischen Sendungsort

Headers_Sent () kann auch zwei Parameter akzeptieren, um die Position (Datei und Zeilennummer) der Headerausgabe zu erhalten:

 if (headers_sent($file, $line)) {
    echo "HTTP Der Kopf ist schon da $file Der erste des Dokuments $line Zeile senden。";
} else {
    header('Location: https://m66.net/some-other-page');
    exit;
}

Diese Methode eignet sich besonders zum Debuggen und hilft Ihnen dabei, den Standort des Codes im Voraus auszugeben.

Gemeinsame Szenen

1 ?? Seitenumleitung

Bevor Sie eine Weiterleitung durchführen, sollten Sie sicherstellen, dass keine Ausgabe vorliegt:

 if (!headers_sent()) {
    header('Location: https://m66.net/login');
    exit;
} else {
    echo "Nicht in der Lage, umzuleiten,Weil es bereits ausgegeben gibt。";
}

2 ?? Kekse einstellen

In ähnlicher Weise stützt sich SetCookie () auf HTTP -Header. Überprüfen Sie es auch:

 if (!headers_sent()) {
    setcookie('user', 'JohnDoe', time() + 3600, '/');
} else {
    echo "Nicht eingestellt werden cookie,Weil der Kopfball gesendet wurde。";
}

Tipps: Schalten Sie die Ausgangspufferung ein

Wenn Sie häufig auf Header -Senden -Fehler stoßen, sollten Sie die Ausgabepufferung am Anfang des Skripts aktivieren:

 ob_start();

Auf diese Weise wird alle Ausgaben zuerst eingeben, anstatt ihn sofort an den Browser zu senden, bis das Skript vorbei ist oder der OB_END_FLUSH () aufgerufen wird, sodass Sie mehr Zeit für die sicheren Senden von Headerinformationen erhalten.