Du bist hier: Tips » Scripte » PHP
PHP
Referenzliste

dl

PHP-Informationen

    Befehl:
int dl ( string $library )


    Parameter-Liste:
NameBeschreibung
libraryDieser Parameter ist only der Dateiname der Erweiterung zu laden, das hängt auch von Ihrer Plattform. Zum Beispiel die sockets Erweiterung (wenn als shared Modul, nicht die Standard zusammengestellt!) Würde genannt sockets.so werden auf Unix-Plattformen während sie auf der Windows-Plattform aufgerufen wird php_sockets.dll.

Das Verzeichnis, in dem die Erweiterung geladen wird, hängt von Ihrer Plattform:

Windows - Wenn nicht explizit in der php.ini gesetzt, die Erweiterung von C:\php4\extensions\ (PHP 4) oder C:\php5\ (PHP 5) standardmässig.
  • ob PHP mit - enable-debug oder nicht
  • ob PHP mit (experimentellem) ZTS (Zend Thread Safety) Unterstützung oder nicht gebaut ist.
  • der aktuelle interne ZEND_MODULE_API_NO (interne Modul Zend API-Nummer, die im Grunde ist das Datum, an dem ein großes Modul API Änderung, z. B. 20010901).
Unter Berücksichtigung der oben, das Verzeichnis dann standardmäßig auf <install-dir>/lib/php/extensions/ <debug-or-not>-<zts-or-not>-ZEND_MODULE_API_NO beispiels /usr/local/php/lib/php/extensions/debug-non-zts-20010901 oder /usr/local/php/lib/php/extensions/no-debug-zts-20010901.

    Rückgabewerte:
Rückgabewert TRUE bei Erfolg FALSE im Fehlerfall. Wenn die Funktionalität der Lademodule nicht verfügbar ist oder hat, indem sie entweder enable_dl() oder ausgeschaltet, indem du abgesicherten Modus deaktiviert in php.ini) ein E_ERROR wird ausgegeben und die Ausführung wird gestoppt. Wenn dl() nicht, da die angegebene Bibliothek konnte nicht geladen werden, zusätzlich zu FALSE ein E_WARNING Meldung ausgegeben.

    Beschreibung:
Lädt die mittels dem Parameter library angegebene PHP-Erweiterung. Der Parameter library ist nur der Dateiname der zu ladenden Erweiterung (Extension), welcher von Ihrer Plattform abhängig ist. Z.B. würde die Extension sockets (wenn als shared module kompiliert, nicht standardmässig!) auf Unix Plattformen sockets.so, und auf Windows Plattformen php_sockets.dll heissen.

Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben. Ist die Funktionalität des Ladens von Modulen nicht verfügbar (siehe Anmerkung), oder wurde sie deaktiviert (entweder durch Deaktivieren von enable_dl oder durch aktivieren von safe_mode in der php.ini), wird ein E_ERROR ausgegeben, und die Ausführung gestoppt. Scheitert dl() weil die angegebene Erweiterung nicht geladen werden konnte, wird zusätzlich zu FALSE eine E_WARNING Meldung ausgegeben.

Verwenden Sie extension_loaded() um zu testen, ob die gewünschte Erweiterung bereits verfügbar ist oder nicht. Dies funktioniert sowohl bei eingebauten, als auch bei dynamisch geladenen Erweiterungen (entweder durch php.ini, oder mittels dl()).


    Aktiv in Version:
(PHP 4, PHP 5, PHP 7)

    Hinweis:
Hinweis:

dl() ist not unterstützt, wenn PHP mit ZTS-Unterstützung. Verwenden Sie die Richtlinien Erweiterung Loading statt.

dl()-und Kleinschreibung auf Unix-Plattformen.

Diese Funktion ist deaktiviert, wenn PHP in abgesicherten Modus läuft.


    Warnung:
Warnung:

Diese Funktion wurde von einigen SAPIs in PHP 5.3 entfernt.


    Siehe auch:
Findet heraus, ob eine Extension geladen ist
 

dl() - Beispiel:


Eingabe:
<?php
if (!extension_loaded('gd')) {
    if (!dl('gd.so')) {
        exit;
    }
}
?>


Beschreibung:
Version Beschreibung
5.3.0 dl() wird nun in einigen SAPIs wegen Stabilitätsproblemen deaktiviert. Die einzigen, die SAPIs dl() ermöglichen, sind CLI und einbetten. Verwenden Sie die Richtlinien Erweiterung Loading statt.
dl() - Beispiel 2:


Eingabe:
<?php

function dl_local( $extensionFile ) {
// sicherstellen, dass wir in der Lage, Bibliotheken geladen sind
   if( !(bool)ini_get( "enable_dl" ) || (bool)ini_get( "safe_mode" ) ) {
     die( "dh_local(): Lädt Erweiterungen ist nicht zulässig.\n" );
   }

// überprüfen, um sicherzustellen, dass die Datei vorhanden ist
   if( !file_exists( $extensionFile ) ) {
     die( "dl_local(): Datei '$extensionFile' existiert nicht.\n" );
   }

// Überprüfen Sie die Zugriffsrechte
   if( !is_executable( $extensionFile ) ) {
     die( "dl_local(): Datei '$extensionFile' ist nicht ausführbar.\n" );
   }

// es wird der Weg herausfunden
 $currentDir = getcwd() . "/";
 $currentExtPath = ini_get( "extension_dir" );
 $subDirs = preg_match_all( "/\//" , $currentExtPath , $matches );
 unset( $matches );

// Lassen Sie uns sicherstellen, dass wir extrahieren Sie eine gültige Erweiterung Pfad
   if( !(bool)$subDirs ) {
     die( "dl_local(): Konnte nicht ermittelt eine gültige Erweiterung path [extension_dir].\n" );
   }

 $extPathLastChar = strlen( $currentExtPath ) - 1;

   if( $extPathLastChar == strrpos( $currentExtPath , "/" ) ) {
     $subDirs--;
   }

 $backDirStr = "";
     for( $i = 1; $i <= $subDirs; $i++ ) {
     $backDirStr .= "..";
       if( $i != $subDirs ) {
         $backDirStr .= "/";
       }
   }

// konstruieren die endgültige Pfad zu laden
 $finalExtPath = $backDirStr . $currentDir . $extensionFile;

// Jetzt führen wir dl () geladen werden, um tatsächlich das Modul
     if( !dl( $finalExtPath ) ) {
     die();
   }

// wenn das Modul korrekt geladen wurde, müssen wir verneigen greifen
// den Namen des Moduls
 $loadedExtensions = get_loaded_extensions();
 $thisExtName = $loadedExtensions[ sizeof( $loadedExtensions ) - 1 ];

// Schliesslich kehren wir den Namen der Erweiterung
  return $thisExtName;

}//end dl_local()
?>


Beschreibung:
Version Beschreibung
5.3.0 dl() wird nun in einigen SAPIs wegen Stabilitätsproblemen deaktiviert. Die einzigen, die SAPIs dl() ermöglichen, sind CLI und einbetten. Verwenden Sie die Richtlinien Erweiterung Loading statt.
dl() - Beispiel 3:


Eingabe:
<?php
$gd_is_shared            = "shared-library";

if (function_exists('ImageCreateFromPNG') && !@dl('gd.so')) {
    $gd_is_shared = "embedded";
}

print $gd_is_shared;
?>


Beschreibung:
Version Beschreibung
5.3.0 dl() wird nun in einigen SAPIs wegen Stabilitätsproblemen deaktiviert. Die einzigen, die SAPIs dl() ermöglichen, sind CLI und einbetten. Verwenden Sie die Richtlinien Erweiterung Loading statt.
PHP-Informationen