7.80.9 dl()Charge une extension PHP à la volée[ Exemples avec dl ] PHP 3, PHP 4
int
dl (
string
library
)
dl
charge l'extension PHP
library
à la volée. Le paramètre
library
est
seulement
le nom de fichier de l'extension,
qui dépend de votre plate-forme. Par exemple l'extension
sockets (si compilée comme module
partagé, et non par défaut), sera appelée
sockets.so
sous Unix, et
php_sockets.dll
sous Windows.
Cette fonction retourne
TRUE
en cas de succès,
FALSE
en cas d'échec.. Si la fonctionnalité de chargement de module n'est pas
disponible (voir Note), ou a été désactivé (soit en inactivant la directive
enable_dl
ou en activant le safe mode
dans le
php.ini
) une
E_ERROR
sera émise et
l'exécution du script sera stoppée. Si la fonction
dl
échoue parce que la librairie n'a pu être
trouvée,
dl
retournera
FALSE
et émettra un
message d'alerte.
Utilisez la fonction
extension_loaded
pour vérifier
qu'une extension est chargée ou non. Cette fonction travaille aussi bien
avec les extensions intégrées qu'avec les extensions dynamiquement
chargées (via le
php.ini
, ou via
dl
).
Exemple avec dl |
<?php if (!extension_loaded('gd')) { if (!dl('gd.so')) { exit; } }
|
Le dossier où sont rangées les extensions dépend de votre plate forme :
Windows - Si il n'est pas explicitement indiqué dans le fichier
php.ini
,
le dossier des extensions est
c:\php4\extensions\
.
Unix - Si il n'est pas explicitement indiqué dans le fichier
php.ini
,
le dossier des extensions dépend de
-
Si
PHP
a été compilé avec l'option
--enable-debug
-
Si PHP a été compilé avec le support (expérimental) de ZTS (Zend Thread Safety)
-
de la constante interne
ZEND_MODULE_API_NO
(version interne de module d'API Zend, qui est en réalité la date
à laquelle une modification importante de l'API a été faite, comme
par exemple
20010901
)
En prenant ces paramètres en considération, le dossier des extensions
vaut alors
<php-install-directory>/lib/php/extension/<debug-or-not>-<zts-or-not>-ZEND_MODULE_API_NO
,
i.e.
/usr/local/php/lib/php/extensions/debug-non-zts-20010901
ou
/usr/local/php/lib/php/extensions/no-debug-zts-20010901
.
Note |
dl
n'est pas
supporté sur les
serveur web multi-threadés. Utilisez la directive
extensions
dans votre fichier
php.ini
lorsque vous vous trouvez dans un
environnement de ce type. Cependant, les versions
CGI
et
CLI
ne sont pas
!
|
Note |
dl
est sensible à la casse sur les plate-formes Unix.
|
Voir aussi
directives de chargement d'extensions et
extension_loaded
.
|