Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/02/2005, 23:09
Avatar de jmn2k1
jmn2k1
 
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires...
Mensajes: 489
Antigüedad: 18 años, 2 meses
Puntos: 2
Probaste con el manual?

Cita:
dl
(PHP 3, PHP 4 , PHP 5)

dl -- Carga una extensión PHP en tiempo de ejecución
Descripción
int dl ( string libreria)


Carga la extensión PHP dada por el parámetro libreria. El parámetro libreria 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 librería 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()).

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


si PHP ha sido compilado con --enable-debug o no

si PHP ha sido compilado con soporte ZTS (Zend Thread Safety) (experimental) o no

el valor interno ZEND_MODULE_API_NO actual (número interno de API de módulo Zend, el cual es básicamente la fecha en la que ocurrié un cambio significativo en la API de módulo, p.ej. 20010901)

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().
en php.net podes bajarte el manual oficial de php en diversos formatos e idiomas.

Saludos, y espero que te sirva!
__________________
JmN