Signatur
Beschreibung
phpinfo() ist die schnellste Möglichkeit, einen vollständigen Überblick über die PHP-Umgebung zu erhalten. Die Funktion gibt eine formatierte Seite aus, die unter anderem die PHP-Version, geladene Erweiterungen, Kompilierungsoptionen, INI-Einstellungen, Serverinformationen und Umgebungsvariablen enthält.
Über den optionalen Parameter $flags lässt sich steuern, welche Abschnitte ausgegeben werden. Die vordefinierten Konstanten (INFO_GENERAL, INFO_CREDITS, INFO_CONFIGURATION, INFO_MODULES, INFO_ENVIRONMENT, INFO_VARIABLES, INFO_LICENSE, INFO_ALL) können per bitweisem ODER (|) kombiniert werden.
Im CLI-Modus wird statt HTML reiner Text ausgegeben, was die Ausgabe gut für Shell-Skripte geeignet macht. Im Web-Kontext liefert die Funktion eine vollständige HTML-Seite inklusive <html>- und <body>-Tags, was bedeutet, dass sie in der Regel als einzige Ausgabe auf der Seite stehen sollte.
Die Funktion ist vor allem für Entwicklung, Debugging und Serverdiagnose nützlich. Im Produktivbetrieb sollte phpinfo() niemals öffentlich zugänglich sein, da sie zahlreiche sensible Informationen über den Server preisgibt.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $flags | int | INFO_ALL | Bitmaske aus vordefinierten INFO_*-Konstanten, die bestimmt, welche Abschnitte ausgegeben werden. Standardmäßig werden alle Abschnitte (INFO_ALL) angezeigt. |
Rückgabewert
true zurück. Ab PHP 8.0 ist der Rückgabetyp explizit als true deklariert (nicht bool).Beispiele
Vollständige PHP-Info-Seite ausgeben
<?php
// Gibt alle verfügbaren Informationen über die PHP-Konfiguration aus.
// Nur in gesicherter Entwicklungsumgebung verwenden!
phpinfo();
Nur bestimmte Abschnitte ausgeben
<?php
// Gibt nur allgemeine Informationen und geladene Module aus
phpinfo(INFO_GENERAL | INFO_MODULES);
// Alternativ: Nur die INI-Einstellungen
phpinfo(INFO_CONFIGURATION);
phpinfo()-Ausgabe in einem String erfassen
<?php
// Ausgabe in einen String puffern, um ihn weiterverarbeiten zu können
ob_start();
phpinfo(INFO_MODULES);
$info = ob_get_clean();
// Prüfen, ob die cURL-Erweiterung geladen ist
if (str_contains($info, 'curl')) {
echo 'cURL ist verfügbar.';
} else {
echo 'cURL ist NICHT verfügbar.';
}
// Wichtig · Fallstricke
Sicherheitswarnung: phpinfo() gibt hochsensible Informationen preis, darunter Dateipfade, Datenbankverbindungsparameter (sofern in INI gesetzt), Serverkonfiguration und Umgebungsvariablen. Eine öffentlich erreichbare phpinfo()-Seite ist ein ernstes Sicherheitsrisiko und kann Angreifern wertvolle Informationen für gezielte Angriffe liefern.
- Im Produktivbetrieb sollte die Funktion entweder vollständig entfernt oder hinter einer Authentifizierung geschützt werden.
- Alternativ kann
php_uname(),php_sapi_name()oderini_get()verwendet werden, um gezielt einzelne Werte abzurufen, ohne die gesamte Konfiguration preiszugeben. - Ab PHP 8.0 gibt die Funktion immer
truezurück (keinfalsemehr möglich).