   #PHP Manual PHP Options&Information assert extension_loaded

   PHP Manual
   Prev  Next
   ______________________________________________________________________

                                      dl

   (PHP 3, PHP 4 )
   dl -- Loads a PHP extension at runtime

Description

   int dl ( string library)

   Loads the PHP extension given by the parameter library. The library
   parameter is only the filename of the extension to load which also
   depends on your platform. For example, the sockets extension (if
   compiled as a shared module, not the default!) would be called
   sockets.so on Unix platforms whereas it is called php_sockets.dll on
   the Windows platform.

   Returns TRUE on success or FALSE on failure. If the functionality of
   loading modules is not available (see Note) or has been disabled
   (either by turning it off enable_dl or by enabling safe mode in
   php.ini) an E_ERROR is emitted and execution is stopped. If dl() fails
   because the specified library couldn't be loaded, in addition to FALSE
   an E_WARNING message is emitted.

   Use extension_loaded() to test whether a given extension is already
   available or not. This works on both built-in extensions and
   dynamically loaded ones (either through php.ini or dl()).

   Example 1. dl() examples
   <?php
   // Example loading an extension based on OS
   if (!extension_loaded('sqlite')) {
       if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) {
           dl('php_sqlite.dll');
       } else {
           dl('sqlite.so');
       }
   }
   // Or, the PHP_SHLIB_SUFFIX constant is available as of PHP 4.3.0
   if (!extension_loaded('sqlite')) {
       $prefix = (PHP_SHLIB_SUFFIX == 'dll') ? 'php_' : '';
       dl($prefix . 'sqlite.' . PHP_SHLIB_SUFFIX);
   }
   ?>

   The directory where the extension is loaded from depends on your
   platform:

   Windows - If not explicitly set in the php.ini, the extension is
   loaded from c:\php4\extensions\ by default.

   Unix - If not explicitly set in the php.ini, the default extension
   directory depends on

     * whether PHP has been built with --enable-debug or not
     * whether PHP has been built with (experimental) ZTS (Zend Thread
       Safety) support or not
     * the current internal ZEND_MODULE_API_NO (Zend internal module API
       number, which is basically the date on which a major module API
       change happened, e.g. 20010901)

   Taking into account the above, the directory then defaults to
   <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 or
   /usr/local/php/lib/php/extensions/no-debug-zts-20010901.

     Note: dl() is not supported in multithreaded Web servers. Use the
     extensions statement in your php.ini when operating under such an
     environment. However, the CGI and CLI build are not affected !

     Note: dl() is case sensitive on Unix platforms.

     Note: This function is disabled in safe mode.

   See also Extension Loading Directives and extension_loaded().
   ______________________________________________________________________

   Prev   Home             Next
   assert  Up  extension_loaded
