dl()

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

dl

PHP-versioner: ( PHP 4, PHP 5, PHP 7, PHP 8 )

Beskrivning

`dl` laddar en PHP-tilläggsmodul vid körning (runtime). Funktionen laddar tillägget som anges av parametern `extension_filename`.

Använd `extension_loaded()` för att kontrollera om ett givet tillägg redan är tillgängligt eller inte. Detta fungerar för både inbyggda tillägg och dynamiskt laddade tillägg (antingen genom `php.ini` eller `dl()`).

Varning: Denna funktion är endast tillgänglig för CLI och inbäddade SAPIs, samt för CGI SAPI när den körs från kommandoraden.

Parametrar

  • extension_filename

Detta parameter är endast filnamnet på tillägget som ska laddas, vilket också beror på din plattform. Till exempel, skulle sockets-tillägget (om det kompileras som en delad modul, ej standard!) kallas `sockets.so` på Unix-plattformar medan det kallas `php_sockets.dll` på Windows-plattformen.

Katalogen där tillägget laddas från beror på din plattform:

  • Windows: Om det inte är uttryckligen inställt i `php.ini`, laddas tillägget från `C:\php5\` som standard.
  • Unix: Om det inte är uttryckligen inställt i `php.ini`, beror standardkatalogen för tillägg på om:
  • PHP har byggts med `--enable-debug`
  • PHP har byggts med ZTS (Zend Thread Safety) stöd
  • Det aktuella interna `ZEND_MODULE_API_NO` (Zend internal module API-nummer, vilket i princip är datumet då en större modul API-ändring inträffade, t.ex. `20010901`)

Genom att ta hänsyn till ovanstående, hamnar katalogen i `<install-dir>/lib/php/extensions/<debug-or-not>-<zts-or-not>-ZEND_MODULE_API_NO`, t.ex. `/usr/local/php/lib/php/extensions/debug-non-zts-20010901` eller `/usr/local/php/lib/php/extensions/no-debug-zts-20010901`.

Returvärden

Returnerar `true` vid framgång eller `false` vid misslyckande. Om funktionaliteten för att ladda moduler inte är tillgänglig eller har inaktiverats (genom att ställa in `enable_dl` till `off` i `php.ini`), genereras ett `E_ERROR` och exekveringen stoppas. Om `dl()` misslyckas eftersom det specificerade biblioteket inte kunde laddas, genereras ett `E_WARNING`-meddelande utöver att `false` returneras.

Exempel

Exempel #1 dl()-exempel

<?php
// Exempel på att ladda ett tillägg baserat på operativsystem
if (!extension_loaded('sqlite')) {
    if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
        dl('php_sqlite.dll');
    } else {
        dl('sqlite.so');
    }
}

// Eller använda PHP_SHLIB_SUFFIX-konstanten
if (!extension_loaded('sqlite')) {
    $prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '';
    dl($prefix . 'sqlite.' . PHP_SHLIB_SUFFIX);
}
?>

Noteringar

Notera: `dl()` är skiftlägeskänslig på Unix-plattformar.

Se även

  • Extension Loading Directives

Sidslut

Orginalhemsidan på Engelska :https://www.php.net/manual/en/function.dl.php

PHP Funktioner Funktionsreferens


Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp och Datorservice som har sponsrat Linux.se med webserver.