Podręcznik PHP
Poprzedni |  | Następny

# dl

(PHP 3, PHP 4, PHP 5)

dl -- Loads a PHP extension at runtime

## Opis

int dl ( string library )

Loads the PHP extension given by the parameter `library`.

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

## Parametry

`library`

  This 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.

  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`.

## Zwracane wartości

Zwraca `TRUE` w przypadku sukcesu, `FALSE` w przypadku porażki. 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 tryb bezpieczny 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.

## Przykłady

Przykład 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); } ?>`

## Notatki

> Notatka: 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 !

> Notatka: As of PHP 5, the dl() function is deprecated in every SAPI except CLI. Use Extension Loading Directives method instead.

> Notatka: Since PHP 6 this function is disabled in all SAPIs, except CLI, CGI and embed.

> Notatka: dl() is case sensitive on Unix platforms.

> Notatka: Ta funkcja jest niedostępna w trybie bezpiecznym

## Patrz także

Extension Loading Directives
extension_loaded()

Poprzedni | Spis treści | Następny
assert | Początek rozdziału | extension_loaded