Benutzer-Werkzeuge

Webseiten-Werkzeuge


php

PHP

Cannot modify header information - headers already sent

Dieser Fehler tritt auf, wenn der HTML-Header modifiziert werden soll, er aber schon gesendet wurde. Er wird automatisch gesendet, wenn eine Ausgabe via PHP gemacht wird. Das kann mehrere schwer zu findende Ursachen haben:

  • Leerzeichen oder -zeilen vor oder nach dem PHP-Tag
  • Editoren, die bei UTF8 kodierten Dateien Zeichen zur Markierung der Byteorder (BOM) hinzufügen
  • Ausgaben oder Fehlermeldungen mit print oder echo

display_errors auf der Kommandozeile

Um die Anzeige von Fehlern auf der Kommandozeile (CLI) zu unterdrücken, ist es nicht ausreichend display_errors auf Null zu setzen. Es muss zusätzlich auch error_log auf eine Datei oder /dev/null gesetzt werden:

ini_set('display_errors', 0);
ini_set('error_log', '/dev/null'); //no log at all
//or
ini_set('error_log', 'log/error.log'); //use log file

UTF-8

PHP bietet leider keine eingebaute Unterstützung für UTF-8 Strings. Daher ist die Verwendung und Verarbeitung umständlich.

lokalisierte Zeit und Datum

Für das Formatieren und Parsen von lokalisierten Zeit- und Datumswerten kann die Klasse DateFormatter verwendet werden. Für eine noch flexiblere Behandlung gibt es ab PHP 8.1 zusätzlich die Klasse DatePatternGenerator.

Entwicklungstools

php.txt · Zuletzt geändert: 2023/08/10 12:18 von olli