PHP.SU - Функция dl() - Загружает PHP расширение во время выполнения

  Основы PHP
  Что такое PHP?
  Возможности PHP
  Преимущества PHP
  История развития
  Что нового в PHP5?
  «Движок» PHP
  Переход на PHP 5.3
New Переход на PHP 5.6
  Введение в PHP
  Изучение PHP
  Основы CGI
  Синтаксис PHP
  Типы данных PHP
  Переменные в PHP
  Константы PHP
  Выражения PHP
  Операторы PHP
  Конструкции PHP
  Ссылки в PHP
  PHP и ООП
  Безопасность
  Функции PHP
  Функции по категориям
  Функции по алфавиту
  Стандартные функции
  Пользовательские
  PHP и HTTP
  Работа с формами
  PHP и Upload
  PHP и Cookies
  PHP и базы данных
  PHP и MySQL
  Документация MySQL
  Учебники
  Учебники по PHP
  Учебники по MySQL
  Другие учебники
  Уроки PHP
  Введение
  Самые основы
  Управление
  Функции
  Документация
  Математика
  Файлы
  Основы SQL
  Дата и время
  CURL
  Изображения
  Стили
  Безопасность
  Установка
  Проектирование БД
  Регулярные выражения
  Подготовка к работе
  Быстрый старт
  Установка PHP
  Установка MySQL
  Конфигурация PHP
  Download / Скачать
  Скачать Apache
  Скачать PHP
  Скачать PECL
  Скачать PEAR
  Скачать MySQL
  Редакторы PHP
  Полезные утилиты
  Документация
  PHP скрипты
  Скачать скрипты
  Инструменты
  PHP в примерах
  Новости портала
 Главная   »  Функции PHP
 
 
Функции PHP »

dl

Версия: (PHP 4, PHP 5)

dl - Загружает PHP расширение во время выполнения

Синтаксис:

bool dl (string $library )

Параметры:

library -
Этот аргумент содержит только имя файла расширения, которое требуется загрузить. Это имя зависит от платформы. Например, расширение sockets (если скомпилировано, как загружаемый модуль, а не модуль по умолчанию!) будет называться sockets.so на Unix платформах, и php_sockets.dll в Windows среде.
Директория, из которой расширение должно быть загружено также зависит от платформы:
Windows - Если явно не задано в php.ini, расширение будет грузиться из C:php4extensions (PHP 4) или C:php5 (PHP 5) по умолчанию.
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.

Внимание

Эта функция удалена из некоторых SAPI в PHP 5.3.


Список изменений:

Версия Описание
5.3.0 dl() выключен в некоторых SAPI в связи с нестабильностью работы. Из SAPI, поддерживающих dl(), остались только CLI и Embed. Используйте вместо dl Директивы загрузки расширений.

Описание

Загружает PHP расширение заданное аргументом library. Чтобы проверить, что заданное расширение уже загружено, используйте функцию extension_loaded(). Эта функция работает как для встроенных расширений, так и для динамически загруженных (т.е. загруженных как через php.ini, так и через dl()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Если механизм загрузки модулей недоступен или отключен (либо значением off настройки php.ini enable_dl, либо включен безопасный режим в php.ini), будет выдана ошибка E_ERROR, и выполнение будет остановлено. Если dl() не сможет загрузить заданную библиотеку, то в дополнение к FALSE будет выдано сообщение E_WARNING.

Примеры:

Пример 1 Примеры использования dl()

PHP: скопировать код в буфер обмена
  1. // Пример загрузки расширения, основываясь на ОС
  2. if (!extension_loaded('sqlite')) {
  3.     if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
  4.         dl('php_sqlite.dll');
  5.     } else {
  6.         dl('sqlite.so');
  7.     }
  8. }
  9.  
  10. // Или на константе PHP_SHLIB_SUFFIX (доступна с PHP 4.3.0)
  11. if (!extension_loaded('sqlite')) {
  12.     $prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '';
  13.     dl($prefix . 'sqlite.' . PHP_SHLIB_SUFFIX);
  14. }

Замечание:

dl() не поддерживается в PHP собранных с поддержкой ZTS. Используйте вместо dl директивы загрузки расширений.

Замечание:

dl() чувствительна к регистру на Unix платформах.

Замечание: Эта функция недоступна в безопасном режиме.


Смотрите также:

extension_loaded()


 Функции по алфавиту 
   Содержание   
 Функции по категориям 

Есть еще вопросы или что-то непонятно - добро пожаловать на наш  форум портала PHP.SU 
 

 
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS