dl

(PHP 3, PHP 4 )

dl -- Charge une extension PHP à la volée

Description

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

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