assert
extension_loaded
Fonctions sur les options et les informations de PHP
PHP Manual

# dl

(PHP 4, PHP 5)

dl — Charge une extension PHP à la volée

### Description

int dl ( string `$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()).

### 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, 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 <install-dir>/lib/php/extensions/ <debug-or-not>-<zts-or-not>-ZEND_MODULE_API_NO, e.g. /usr/local/php/lib/php/extensions/debug-non-zts-20010901 ou /usr/local/php/lib/php/extensions/no-debug-zts-20010901.

### Valeurs de retour

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`.

### 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');
}
}
// 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);
}
?>`

### Notes

> Note: dl() n'est pas supportée sur les serveur web multithreadé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: Depuis PHP 5, la fonction dl() est obsolète dans tous les SAPI, excepté CLI. Utilisez les directives d'extensions de chargement à la place.

> Note: Depuis PHP 6, cette fonction est désactivée pour toutes les SAPI, exceptées CLI, CGI et embarquée.

> 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()

assert
extension_loaded
Fonctions sur les options et les informations de PHP
PHP Manual