dl
(PHP 4, PHP 5)
dl — Lädt eine PHP-Erweiterung (Extension) zur Laufzeit
Beschreibung
int dl
( string $library
)
Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben. 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 #1 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.
Hinweis:
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!
Hinweis:
dl() unterscheidet auf Unix Plattformen zwischen Groß-
und Kleinschreibung.
Siehe auch
Extension Loading Directives
and extension_loaded().