Manuel PHP

Table des matières

Préface
I. Au moment de commencer
II. Installation et configuration
III. Référence du langage
IV. Sécurité
V. Caractéristiques
VI. Référence des fonctions
VII. PHP et le moteur interne Zend
VIII. FAQ : foire Aux Questions
IX. Annexes
Remerciements



dl

(PHP 3, PHP 4, PHP 5)

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.

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

Exemple 1. 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 : Depuis PHP 6, cette fonction est désactivée dans tous les SAPIs, exceptés CLI, CGI et embarqué.
Note : dl() est sensible à la casse sur les plates-formes Unix.
Note : Cette fonction est désactivée par le safe-mode

Travail collaboratif

Contribuez, en ajjoutant des elements a cette page de manuel :

Merci de votre aide
L’equipe Php.fr

 


Index | Afficher le texte source | Anciennes révisions | Derniers changements | Connexion
©2007 Wiki Copyright