dl(): Skillnad mellan sidversioner
Admin (diskussion | bidrag) Ingen redigeringssammanfattning |
Admin (diskussion | bidrag) Ingen redigeringssammanfattning |
||
Rad 1: | Rad 1: | ||
== dl == | == dl == | ||
**PHP-versioner:** PHP 4, PHP 5, PHP 7, PHP 8 | |||
=== Beskrivning === | === 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 === | === 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 === | === 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 === | ||
==== Exempel #1 dl()-exempel ==== | |||
==== Exempel #1 | |||
<pre> | <pre> | ||
<?php | <?php | ||
// | // Exempel på att ladda ett tillägg baserat på operativsystem | ||
if (!extension_loaded('sqlite')) { | if (!extension_loaded('sqlite')) { | ||
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { | if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { | ||
Rad 55: | Rad 40: | ||
} | } | ||
// Eller använda PHP_SHLIB_SUFFIX konstanten | // Eller använda PHP_SHLIB_SUFFIX-konstanten | ||
if (!extension_loaded('sqlite')) { | if (!extension_loaded('sqlite')) { | ||
$prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : ''; | $prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : ''; | ||
Rad 62: | Rad 47: | ||
?> | ?> | ||
</pre> | </pre> | ||
=== Noteringar === | === Noteringar === | ||
'''Notera:''' | |||
`dl()` är skiftlägeskänslig på Unix-plattformar. | |||
=== Se även === | |||
* '''Extension Loading Directives''' | |||
=== | |||
* | |||
= Sidslut = | = Sidslut = |
Versionen från 13 oktober 2024 kl. 06.53
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.