Start · Sprachen · PHP · Referenz · phpinfo

phpinfo

Funktion

Gibt eine detaillierte HTML-Seite (oder Plaintext im CLI-Modus) mit Informationen über die aktuelle PHP-Konfiguration aus.

seit PHP 4.0.0 Kategorie: misc

Signatur

phpinfo(int $flags = INFO_ALL): true

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

Typ
true
Beschreibung
Gibt immer 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();
(vollständige HTML-Seite mit PHP-Konfiguration — zu lang für eine Vorschau)

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);
(gefilterte HTML-Seite mit den ausgewählten Abschnitten)

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.';
}
cURL ist 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() oder ini_get() verwendet werden, um gezielt einzelne Werte abzurufen, ohne die gesamte Konfiguration preiszugeben.
  • Ab PHP 8.0 gibt die Funktion immer true zurück (kein false mehr möglich).