array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'tr', ), 'this' => array ( 0 => 'function.dl.php', 1 => 'dl', ), 'up' => array ( 0 => 'ref.info.php', 1 => 'PHP Seçenek/Bilgi İşlevleri', ), 'prev' => array ( 0 => 'function.cli-set-process-title.php', 1 => 'cli_set_process_title', ), 'next' => array ( 0 => 'function.extension-loaded.php', 1 => 'extension_loaded', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'tr', 'path' => 'reference/info/functions/dl.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
dl — Belirtilen PHP eklentisini çalışma anında yükler
eklenti
bağımsız değişkeni ile belirtilen
PHP eklentisini yükler.
Belli bir eklentinin yüklü olup olmadığını sınamak için, hem yerleşik (php.ini ile yüklenen) hem de devingen olarak (dl() ile) yüklenen eklentileri bulan extension_loaded() işlevini kullanın.
Bu işlev komut satırından çağrıldığında yalnızca CGI SAPI, gömülü SAPI'ler ve CLI için kullanılabilir.
eklenti
Bu bağımsız değişken ile eklentinin platforma özgü kütüphane dosyasının ismi belirtilir. Örneğin sockets eklentisini Windows platformunda yüklemek için php_sockets.dll ismini kullanmak gerekirken Unix platformlarında sockets.so kullanmak gerekir (bir paylaşımlı modül olarak derlenmişse).
Eklentinin yükleneceği dizin platforma göre değişiklik gösterir:
Windows - php.ini içinde açıkça belirtilmemişse, eklenti öntanımlı olarak c:\php5\ dizininden yüklenir.
Unix - php.ini içinde açıkça belirtilmemişse, öntanımlı eklenti dizinin yeri şunlara bağlıdır:
--enable-debug
seçeneği ile derlenip
derlenmediği;
ZEND_MODULE_API_NO
sabiti (Zend
yerleşik modülü API numarası; genelde API modülünün değişiklik
tarihidir. 20010901
gibi).
<kurulum-dizini>/lib/php/extensions/
<debug/no-debug>-<zts/non-zts>-ZEND_MODULE_API_NO
.
Örnek:
/usr/local/php/lib/php/extensions/debug-non-zts-20010901 veya
/usr/local/php/lib/php/extensions/no-debug-zts-20010901.
Başarı durumunda true
, başarısızlık durumunda false
döner. Eğer modül yükleme işlevsel değilse
(php.ini içinde enable_dl
off yapılarak iptal edilmişse) bir E_ERROR
iletisi
çıktılanıp çalışma durdurulur. Eğer işlev, kütüphane yüklenemediğinden
dolayı başarısız olursa bir E_WARNING
iletisi
çıktılayarak false
döndürür.
Örnek 1 - dl() örnekleri
<?php
// Platforma göre eklenti yüklemek
if (!extension_loaded('sqlite')) {
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
dl('php_sqlite.dll');
} else {
dl('sqlite.so');
}
}
// veya PHP_SHLIB_SUFFIX sabiti de kullanılabilir
if (!extension_loaded('sqlite')) {
$prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '';
dl($prefix . 'sqlite.' . PHP_SHLIB_SUFFIX);
}
?>
Bilginize:
dl() Unix platformlarında harf büyüklüğüne duyarlıdır.