Nach der PHP-Dokumentation gesendet wird:Anruf header() nach der Ausgabe
header() muss aufgerufen werden, bevor eine Ausgabe gesendet wird, entweder durch normale HTML-Tags, leere Zeilen in einer Datei, oder von PHP. Es ist ein sehr häufiger Fehler, Code mit Include- oder Require-Funktionen oder einer anderen Dateizugriffsfunktion zu lesen und Leerzeichen oder Leerzeilen zu haben, die ausgegeben werden, bevor header() aufgerufen wird. Das gleiche Problem tritt auf, wenn eine einzelne PHP/HTML-Datei verwendet wird.
aber wenn ich das Beispiel versuchte, dass die Dokumentation Berichte (mit einem wenig ändern):
<html>
<?php
/* This will give an error. Note the output
* above, which is before the header() call */
header('X-Header: http://www.example.com/');
exit;
?>
alles ganz gut gearbeitet, kein Fehler poped und ich habe glatt meinen <html>
Tag in der Ausgabe und meine X-Header
in den Headern.
Ich benutze PHP 7.1.9, ist also immer noch richtig, was die Dokumentation sagt?
Es hängt etwas von einigen Einstellungen ab, die in der Konfiguration 'php.ini' eingestellt sind. Obwohl es nicht sinnvoll ist, die HTTP-Header nach der Ausgabe zu ändern, sollte man das Programm immer so strukturieren, dass die Header vor der Ausgabe aufgerufen werden. – Qirel