Start · Sprachen · PHP · Referenz · get_loaded_extensions

get_loaded_extensions

Funktion

Gibt ein Array mit den Namen aller aktuell geladenen PHP-Erweiterungen zurück.

seit PHP 4.0.0 Kategorie: misc

Signatur

get_loaded_extensions(bool $zend_extensions = false): array

Beschreibung

get_loaded_extensions() liefert eine Liste aller PHP-Erweiterungen (Extensions), die in der aktuellen PHP-Umgebung kompiliert oder als dynamische Module geladen sind. Dies umfasst sowohl eingebaute Erweiterungen (z. B. json, mbstring) als auch nachträglich über die php.ini geladene Shared Libraries.

Mit dem optionalen Parameter $zend_extensions kann die Abfrage auf Zend-Erweiterungen (z. B. Xdebug, OPcache) umgestellt werden, die intern über die Zend-Engine registriert werden und sich von normalen PHP-Extensions unterscheiden.

Typische Einsatzgebiete sind Kompatibilitätsprüfungen in Installationsroutinen, Debug-Ausgaben oder die dynamische Entscheidung, ob bestimmte Funktionalität verfügbar ist – ergänzend zu extension_loaded(), das gezielt eine einzelne Erweiterung prüft.

Die Reihenfolge der zurückgegebenen Namen ist nicht garantiert. Für eine geordnete Ausgabe empfiehlt sich der Einsatz von sort() auf dem Ergebnis-Array.

Parameter

Name Typ Default Beschreibung
$zend_extensions bool false Wenn true, werden statt normaler PHP-Extensions die geladenen Zend-Erweiterungen zurückgegeben (z. B. Xdebug, Zend OPcache). Standardmäßig false für normale PHP-Erweiterungen.

Rückgabewert

Typ
array
Beschreibung
Ein indiziertes Array von Strings mit den Namen der geladenen Erweiterungen. Die Namen entsprechen dem Format, das auch extension_loaded() erwartet (Groß-/Kleinschreibung beachten). Das Array ist niemals false oder null – im Extremfall ein leeres Array.

Beispiele

Alle geladenen PHP-Erweiterungen ausgeben

<?php
$extensions = get_loaded_extensions();
sort($extensions);

echo "Geladene PHP-Erweiterungen (" . count($extensions) . "):" . PHP_EOL;
foreach ($extensions as $ext) {
    echo '  - ' . $ext . PHP_EOL;
}
Geladene PHP-Erweiterungen (42): - bcmath - calendar - Core - ctype - curl ...

Prüfen, ob eine benötigte Erweiterung fehlt

<?php
$required = ['mbstring', 'curl', 'pdo', 'json', 'openssl'];
$loaded   = get_loaded_extensions();

$missing = array_diff($required, $loaded);

if (empty($missing)) {
    echo "Alle benötigten Erweiterungen sind vorhanden." . PHP_EOL;
} else {
    echo "Fehlende Erweiterungen:" . PHP_EOL;
    foreach ($missing as $ext) {
        echo '  - ' . $ext . PHP_EOL;
    }
}
Fehlende Erweiterungen: - mbstring

Geladene Zend-Erweiterungen anzeigen

<?php
$zendExtensions = get_loaded_extensions(true);

if (empty($zendExtensions)) {
    echo "Keine Zend-Erweiterungen geladen." . PHP_EOL;
} else {
    echo "Geladene Zend-Erweiterungen:" . PHP_EOL;
    foreach ($zendExtensions as $ext) {
        echo '  - ' . $ext . PHP_EOL;
    }
}
Geladene Zend-Erweiterungen: - Zend OPcache - Xdebug

// Wichtig · Fallstricke

Groß-/Kleinschreibung: Die zurückgegebenen Namen sind so wie die Extensions sich selbst registrieren. So heißt die Extension intern z. B. mbstring (alles klein), während Core mit großem C geschrieben wird. Bei der Verwendung mit extension_loaded() ist diese Funktion case-insensitive, die Ausgabe von get_loaded_extensions() jedoch nicht normalisiert.

Performance: In Produktionsumgebungen sollte diese Funktion nicht in jedem Request aufgerufen werden. Besser einmalig im Bootstrap oder in Installationschecks verwenden und das Ergebnis cachen.

Alternative: Für die Prüfung einer einzelnen Erweiterung ist extension_loaded('name') effizienter als in_array('name', get_loaded_extensions()).