assert
<<<
dl extension_loaded
>>>

6.30 Options PHP et informations
6 Référence des fonctions
 Manuel PHP

Introduction
Pré-requis
Installation
Configuration à l'exécution
Types de ressources
Constantes pré-définies
assert_options
assert
->dl
extension_loaded
get_cfg_var
get_current_user
get_defined_constants
get_extension_funcs
get_include_path
get_included_files
get_loaded_extensions
get_magic_quotes_gpc
get_magic_quotes_runtime
get_required_files
getenv
getlastmod
getmygid
getmyinode
getmypid
getmyuid
getopt
getrusage
ini_alter
ini_get_all
ini_get
ini_restore
ini_set
main
memory_get_usage
php_ini_scanned_files
php_logo_guid
php_sapi_name
php_uname
phpcredits
phpinfo
phpversion
putenv
restore_include_path
set_include_path
set_magic_quotes_runtime
set_time_limit
version_compare
zend_logo_guid
zend_version

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

<< dl >>
assert Options PHP et informations extension_loaded