|
8.55.9 dl()Charge une extension PHP à la volée[ Exemples avec dl ] PHP 3, PHP 4, PHP 5
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ée (soit en désactivant 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 bibliothèque n'a pu être
trouvée,
dl
retournera
FALSE
et émettra un
message d'alerte
E_WARNING
.
Utilisez la fonction
extension_loaded
pour vérifier
qu'une extension est chargée ou non. Cette fonction travaille aussi bien
avec les extensions natives qu'avec les extensions dynamiquement
chargées (via le
php.ini
ou
dl
).
La fonction
dl
est déprécié depuis PHP 5.
Utilisez les directives d'extensions de chargement
à la place.
| Exemple avec dl |
<?php // Chargement pour toutes plates-formes if (!extension_loaded('sqlite')) { if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') { dl('php_sqlite.dll'); } else { dl('sqlite.so'); } }
// Mais la constante PHP_SHLIB_SUFFIX est disponible depuis PHP 4.3.0 if (!extension_loaded('sqlite')) { $prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : ''; dl($prefix . 'sqlite.' . PHP_SHLIB_SUFFIX); }
?>
|
Le dossier à partir duquel sont chargées vos extensions dépend de votre
plate-forme :
Windows - S'il n'est pas explicitement indiqué dans le fichier
php.ini
,
le dossier des extensions est
c:\php4\extensions\
.
Unix - S'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
ou non
-
Si PHP a été compilé avec le support (expérimental) de ZTS (Zend
Thread Safety) ou non
-
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,
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ée 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
affectées !
|
| Note | |
dl
est sensible à la casse sur les plates-formes Unix.
|
| Note | |
Cette fonction est désactivée par le safe-mode
|
Voir aussi
directives de chargement d'extensions et
extension_loaded
.
|