dl
  (PHP 4, PHP 5, PHP 7, PHP 8)
dl — Загружает модуль PHP во время выполнения
  
 
  Описание
  
  
  
   Чтобы проверить, что заданный модуль уже загружен, используйте функцию
   extension_loaded(). Функция работает как для встроенных
   модулей, так и для динамически загруженных (т.е. загруженных как через
   php.ini, так и через dl()).
  
  Внимание
   
    Функция доступна только для CLI и встроенного SAPI,
    а также для CGI SAPI при запуске из командной строки.
   
   
  
 
  Список параметров
  
   
    
     - extension_filename
- 
      
       Аргумент содержит только имя файла модуля,
       который требуется загрузить. Это имя зависит от платформы. Например,
       модуль sockets (если скомпилирован,
       как загружаемый модуль, а не модуль по умолчанию!) будет называться
       sockets.so на Unix-платформах, и
       php_sockets.dll в среде Windows.
       
       Директория, из которой модуль должен быть загружен, также зависит от
       платформы:
       
       Windows - Если явно не задано в php.ini, модуль будет грузиться из
       C:\php5\ по умолчанию.
       
       Unix - Если явно не задано в php.ini, директория по умолчанию зависит от
        
        - 
         
          PHP собран с настройкой --enable-debugили без неё
- 
         
          PHP собран с поддержкой ZTS (Zend Thread Safety) или нет
         
        
- 
         
          текущий внутренний номер ZEND_MODULE_API_NO(номер внутреннего модуля Zend API, который, как правило, является датой
          основного изменения API модуля, например20010901)
 Принимая во внимание вышесказанное, получаем следующие значения по умолчанию для
       директории модуля<install-dir>/lib/php/extensions/ <debug-or-not>-<zts-or-not>-ZEND_MODULE_API_NO,
       например,
       /usr/local/php/lib/php/extensions/debug-non-zts-20010901
       или
       /usr/local/php/lib/php/extensions/no-debug-zts-20010901.
 
 
  Возвращаемые значения
  
   Функция возвращает true, если выполнилась успешно, или false, если возникла ошибка. Если механизм загрузки модулей недоступен или отключён
   (значение off настройки enable_dl в php.ini), будет выдана ошибка
   E_ERROR и выполнение прекращается. Если
   dl() не сможет загрузить заданную библиотеку, то в дополнение
   к false будет выдано сообщение E_WARNING.
  
  
 
  Примеры
  
   
    Пример #1 Примеры использования dl()
    
<?php
// Пример загрузки модуля, основываясь на ОС
if (!extension_loaded('sqlite')) {
    if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
        dl('php_sqlite.dll');
    } else {
        dl('sqlite.so');
    }
}
// Или на константе PHP_SHLIB_SUFFIX
if (!extension_loaded('sqlite')) {
    $prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '';
    dl($prefix . 'sqlite.' . PHP_SHLIB_SUFFIX);
}
?>
     
    
  
  
 
  Примечания
  Замечание: 
   
    dl() чувствительна к регистру на Unix-платформах.