(PHP 4, PHP 5)
dl — Carga una extensión PHP en tiempo de ejecución
Carga la extensión PHP dada por el parámetro biblioteca .
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()).
Este parámetro 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.
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
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.
Example#1 Ejemplos de dl()
<?php
// Ejemplo de carga de una extensión 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 está disponible a
// partir de PHP 4.3.0
if (!extension_loaded('sqlite')) {
$prefijo = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '';
dl($prefijo . 'sqlite.' . PHP_SHLIB_SUFFIX);
}
?>
Note: 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!
Note: A partir de PHP 5, la función dl() es considerada obsoleta en todas las SAPI excepto CLI. Use el método de las Directivas de Carga de Extensiones en su lugar.
Note: A partir de PHP 6 esta función es desahibilatad en todas las SAPIs, excepto CLI, CGI y embed.
Note: dl() es sensible a mayúsculas y minúsculas en plataformas Unix.
Note: Esta función no está habilitada en safe-mode (modo-seguro)