dl

(PHP 3, PHP 4, PHP 5)

dl -- Carga una extensión PHP en tiempo de ejecución

Descripción

int dl ( string biblioteca )

Carga la extensión PHP dada por el parámetro biblioteca. El parámetro biblioteca es únicamente el nombre de archivo de la extensión a cargar, el cual también depende de su plataforma. Por ejemplo, la extensión sockets (si fue compilada como módulo, ¡que no es el comportamiento predeterminado!) podría llamarse sockets.so en plataformas Unix, mientras que se llama php_sockets.dll en la plataforma windows.

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo. Si la funcionalidad de carga de módulos no está disponible (ver Nota) o ha sido deshabilitada (ya sea mediante la desactivación de enable_dl o activando safe mode en php.ini) un E_ERROR es producido y se detiene la ejecución. Si dl() falla porque la biblioteca especificada no pudo ser cargada, se emite un mensaje E_WARNING en compañía del FALSE.

Use extension_loaded() para probar si una cierta extensión ya se encuentra disponible o no. Esto funciona tanto con extensiones integradas como con las cargadas dinámicamente (ya sea mediante php.ini o dl()).

La función dl() es obsoleta a partir de PHP 5. Use el método de las Directivas de Carga de Extensiones en su lugar.

Ejemplo 1. Ejemplos de dl()

<?php
// Ejemplo de carga de una extension en base al SO
if (!extension_loaded('sqlite')) {
    if (
strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) {
        
dl('php_sqlite.dll');
    } else {
        
dl('sqlite.so');
    }
}

// O, usando la constante PHP_SHLIB_SUFFIX que esta disponible a
// partir de PHP 4.3.0
if (!extension_loaded('sqlite')) {
    
$prefijo = (PHP_SHLIB_SUFFIX == 'dll') ? 'php_' : '';
    
dl($prefijo . 'sqlite.' . PHP_SHLIB_SUFFIX);
}
?>

El directorio desde donde es cargada la extensión depende de su plataforma:

Windows - Si no está definida explícitamente en php.ini, la extensión es cargada desde c:\php4\extensions\ por defecto.

Unix - Si no está definida explícitamente en php.ini, el directorio de extensiones predeterminado depende de

Tomando en cuenta lo anterior, el directorio recibe el valor predeterminado de <dir-instalacion>/lib/php/extensions/ <debug-o-no>-<zts-o-no>-ZEND_MODULE_API_NO, p.ej. /usr/local/php/lib/php/extensions/debug-non-zts-20010901 o /usr/local/php/lib/php/extensions/no-debug-zts-20010901.

Nota: La función dl() no es soportada en servidores Web multi-hilos. Use la sentencia extensions en su php.ini cuando trabaje sobre ese tipo de entornos. Sin embargo, ¡las versiones CGI y CLI no son afectadas!

Nota: dl() es sensible a mayúsculas y minúsculas en plataformas Unix.

Nota: Esta función no está habilitada en safe-mode (modo-seguro)

Vea también Directivas de Carga de Extensión y extension_loaded().

Hosting by: hurra.com
Generated: 2007-01-26 18:00:57