PHP Handbuch
Zurück |  | Nach vorne

# dl

(PHP 3, PHP 4 )

dl -- Lädt eine PHP-Erweiterung (Extension) zur Laufzeit

## Beschreibung

bool dl ( string library)

Lädt die mittels dem Parameter `library` angegebene PHP-Erweiterung. Der Parameter `library` ist nur der Dateiname der zu ladenden Erweiterung (Extension), welcher von Ihrer Plattform abhängig ist. Z.B. würde die Extension sockets (wenn als shared module kompiliert, nicht standardmäßig!) auf Unix Plattformen `sockets.so`, und auf Windows Plattformen `php_sockets.dll` heißen.

Gibt bei Erfolg `TRUE` zurück, im Fehlerfall `FALSE`. Ist die Funktionalität des Ladens von Modulen nicht verfügbar (siehe Anmerkung), oder wurde sie deaktiviert (entweder durch Deaktivieren von `enable_dl` oder durch aktivieren von `safe_mode` in der `php.ini`), wird ein `E_ERROR` ausgegeben, und die Ausführung gestoppt. Scheitert dl() weil die angegebene Erweiterung nicht geladen werden konnte, wird zusätzlich zu `FALSE` eine `E_WARNING` Meldung ausgegeben.

Verwenden Sie extension_loaded() um zu testen, ob die gewünschte Erweiterung bereits verfügbar ist oder nicht. Dies funktioniert sowohl bei eingebauten, als auch bei dynamisch geladenen Erweiterungen (entweder durch `php.ini`, oder mittels dl()).

Beispiel:

    if (!extension_loaded('gd')) {
        if (!dl('gd.so')) {
            exit;
        }
    }

Das Verzeichnis, von wo aus die Erweiterung geladen wird, hängt von Ihrer Plattform ab:

Windows - Wenn nicht explizit in der `php.ini` angegeben, wird die Erweiterung standardmäßig von `c:\php4\extensions\` geladen.

Unix - Wenn nicht explizit in der `php.ini` angegeben, hängt das standardmäßige Verzeichnis ab von:

- ob PHP mit `--enable-debug` erstellt wurde oder nicht

- ob PHP mit (experimentellem) ZTS (Zend Thread Safety) Unterstützung erstellt wurde oder nicht

- der aktuellen internen `ZEND_MODULE_API_NO` (Zend interne Modul API Nummer, welche im Grunde das Datum der letzten größeren Modul API Änderung darstellt, z.B. `20010901`).

Das obige in Betracht gezogen, ist das standardmäßige Verzeichnis `<php-install-directory>/lib/php/extension/<debug-or-not>-<zts-or-not>-ZEND_MODULE_API_NO`, z.B. `/usr/local/php/lib/php/extensions/debug-non-zts-20010901` oder `/usr/local/php/lib/php/extensions/no-debug-zts-20010901`.

> Anmerkung: dl() wird in multithreaded WebServern nicht unterstützt. In solch einer Umgebung verwenden Sie bitte die `extensions` Anweisung in Ihrer `php.ini`. Die `CGI` und `CLI` Module sind davon jedoch nicht betroffen!

> Anmerkung: dl() unterscheidet auf Unix Plattformen zwischen Groß- und Kleinschreibung.

Siehe auch Extension Loading Directives and extension_loaded().

Zurück | Zum Anfang | Nach vorne
assert | Nach oben | extension_loaded