dl(): Skillnad mellan sidversioner
Admin (diskussion | bidrag) (→dl) |
Admin (diskussion | bidrag) Ingen redigeringssammanfattning |
||
(3 mellanliggande sidversioner av samma användare visas inte) | |||
Rad 1: | Rad 1: | ||
== dl == | == dl == | ||
Laddar en PHP-tillägg under körning. | |||
PHP- | |||
=== Beskrivning === | === Beskrivning === | ||
<pre> | |||
dl(string $extension_filename): bool | |||
</pre> | |||
Laddar PHP-tillägget som anges av parametern '''extension_filename'''. | |||
Använd | Använd '''extension_loaded()''' för att testa om ett tillägg redan är tillgängligt eller inte. Detta fungerar både för inbyggda tillägg och dynamiskt laddade tillägg (antingen genom php.ini eller dl()). | ||
'''Varning:''' | '''Varning:''' | ||
Den här funktionen är endast tillgänglig för '''CLI''' och '''embed SAPIs''', samt '''CGI SAPI''' när den körs från kommandoraden. | |||
=== Parametrar === | === Parametrar === | ||
'''extension_filename''' | |||
Endast filnamnet på tillägget som ska laddas, vilket också beror på din plattform. Till exempel kallas socket-tillägget (om det är kompilerat som ett delat modul, inte standard!) sockets.so på Unix-plattformar medan det kallas php_sockets.dll på Windows-plattformen. | |||
Katalogen där tillägget laddas ifrån beror på din plattform: | |||
'''Windows''' - Om det inte uttryckligen anges i php.ini laddas tillägget från C:\php5\ som standard. | |||
'''Unix''' - Om det inte uttryckligen anges i php.ini, beror standardkatalogen för tillägg på: | |||
* om PHP har byggts med '''--enable-debug''' eller inte | |||
* om PHP har byggts med ZTS (Zend Thread Safety) stöd eller inte | |||
* det aktuella interna '''ZEND_MODULE_API_NO''' (Zend intern modul API-nummer) | |||
Med tanke på ovanstående, är standardkatalogen <install-dir>/lib/php/extensions/<debug-or-not>-<zts-or-not>-ZEND_MODULE_API_NO, till exempel /usr/local/php/lib/php/extensions/debug-non-zts-20010901 eller /usr/local/php/lib/php/extensions/no-debug-zts-20010901. | |||
=== | === Returnerar === | ||
Returnerar | 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 off''' i php.ini), avges ett '''E_ERROR''' och exekveringen stoppas. Om dl() misslyckas på grund av att det specificerade biblioteket inte kunde laddas, returneras även '''false''' och ett E_WARNING meddelande avges. | ||
=== Exempel === | === Exempel === | ||
<pre> | <pre> | ||
<?php | <?php | ||
// Exempel på att ladda ett tillägg baserat på | // Exempel på att ladda ett tillägg baserat på OS | ||
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 40: | Rad 43: | ||
} | } | ||
// Eller | // Eller med 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 49: | Rad 52: | ||
=== Noteringar === | === Noteringar === | ||
'''Notera:''' | '''Notera:''' | ||
dl() är skiftlägeskänsligt på Unix-plattformar. | |||
=== Se även === | === Se även === | ||
* | * [[Extension Loading Directives]] | ||
* [[extension_loaded()]] - Ta reda på om ett tillägg är laddat | |||
= Sidslut = | = Sidslut = |
Nuvarande version från 13 oktober 2024 kl. 06.59
dl
Laddar en PHP-tillägg under körning.
Beskrivning
dl(string $extension_filename): bool
Laddar PHP-tillägget som anges av parametern extension_filename.
Använd extension_loaded() för att testa om ett tillägg redan är tillgängligt eller inte. Detta fungerar både för inbyggda tillägg och dynamiskt laddade tillägg (antingen genom php.ini eller dl()).
Varning: Den här funktionen är endast tillgänglig för CLI och embed SAPIs, samt CGI SAPI när den körs från kommandoraden.
Parametrar
extension_filename Endast filnamnet på tillägget som ska laddas, vilket också beror på din plattform. Till exempel kallas socket-tillägget (om det är kompilerat som ett delat modul, inte standard!) sockets.so på Unix-plattformar medan det kallas php_sockets.dll på Windows-plattformen.
Katalogen där tillägget laddas ifrån beror på din plattform:
Windows - Om det inte uttryckligen anges i php.ini laddas tillägget från C:\php5\ som standard.
Unix - Om det inte uttryckligen anges i php.ini, beror standardkatalogen för tillägg på:
- om PHP har byggts med --enable-debug eller inte
- om PHP har byggts med ZTS (Zend Thread Safety) stöd eller inte
- det aktuella interna ZEND_MODULE_API_NO (Zend intern modul API-nummer)
Med tanke på ovanstående, är standardkatalogen <install-dir>/lib/php/extensions/<debug-or-not>-<zts-or-not>-ZEND_MODULE_API_NO, till exempel /usr/local/php/lib/php/extensions/debug-non-zts-20010901 eller /usr/local/php/lib/php/extensions/no-debug-zts-20010901.
Returnerar
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 off i php.ini), avges ett E_ERROR och exekveringen stoppas. Om dl() misslyckas på grund av att det specificerade biblioteket inte kunde laddas, returneras även false och ett E_WARNING meddelande avges.
Exempel
<?php // Exempel på att ladda ett tillägg baserat på OS if (!extension_loaded('sqlite')) { if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { dl('php_sqlite.dll'); } else { dl('sqlite.so'); } } // Eller med 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änsligt på Unix-plattformar.
Se även
- Extension Loading Directives
- extension_loaded() - Ta reda på om ett tillägg är laddat
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.