dl
(PHP 4, PHP 5, PHP 7)
dl — Charge une extension PHP à la volée
Description
$library
)
Charge l'extension PHP library
à la volée.
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()).
Cette fonction a été supprimée de la plupart des SAPIs dans PHP 5.3.0, et a été supprimé de PHP-FPM dans php 7.0.0.
Liste de paramètres
-
library
-
Ce paramètre 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.
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, l'extension est chargée depuis C:\php5\ par défaut.
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)
Valeurs de retour
Cette fonction retourne TRUE
en cas de
succès ou FALSE
si une erreur survient. Si la fonctionnalité de chargement de module n'est pas
disponible, 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
.
Exemples
Exemple #1 Exemples 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');
}
}
// Ou utiliser la constante PHP_SHLIB_SUFFIX
if (!extension_loaded('sqlite')) {
$prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '';
dl($prefix . 'sqlite.' . PHP_SHLIB_SUFFIX);
}
?>
Historique
Version | Description |
---|---|
7.0.0 | dl() est désactivé dans PHP-FPM. |
5.3.9 | dl() est activé dans PHP-FPM, mais déconseillé. |
5.3.0 | dl() est maintenant désactivé dans quelques SAPIs en raison de son instabilité. Le seul SAPI qui active dl() sont CLI et Embed. Utilisez les directives de chargement d'extension à la place. |
Notes
Note:
dl() n'est pas supporté lorsque PHP est compilé avec le support ZTS. Utilisez les directives de chargement d'extension à la place.
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
- extension_loaded() - Détermine si une extension est chargée ou non
Version en cache
22/12/2024 23:07:52 Cette version de la page est en cache (à la date du 22/12/2024 23:07:52) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-function.dl.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.