Inhaltsverzeichnis
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.
- RFC für DatePatternGenerator, akzeptiert und gemergt ab PHP 8.1
Entwicklungstools
- PHP_Codesniffer Checker für Codingstyle
- PHPCompatibility Regeln für PHP_CodeSniffer um Kompatibilität mit verschiedenen PHP-Versionen zu prüfen
- phpDocumentor Tool um Dokumenation zu erstellen
- PHPStan Statische Codeanalyse für PHP
Links
- PHP the right way Viele Bestpratice Infos
- PHP Sadness Ungereimheiten/Probleme mit PHP
- Lazymofo Datagrid Klasse um SQL Tabelle zu bearbeiten und anzuzeigen
- PHP Watch Versions High-Level Überblick über neue PHP-Versionen
- OnlinePHP Sandbox um PHP-Code mit sehr vielen verschiedenen PHP-Versionen zu testen
- 3v4l Online PHP-Shell mit allen PHP-Versionen seit 4.3
- The Ultimate Guide for Transpiling PHP Code Code in aktueller PHP-Version schreiben und dann automatisch für niedrigere Versionen anpassen lassen