Чтение конфигурационных переменных

Задача
Необходимо получить значение конфигурационной опции PHP.

Решение
Это делается с помощью функции ini_get():

// определяем путь включения:
$include_path = ini_get('include_path');

Обсуждение
Для получения всех значений переменных конфигурации вызовите функцию ini_get_all(). Она возвращает переменные в виде ассоциативного массива, где каждый элемент массива сам является ассоциативным массивом. Второй массив имеет три элемента: глобальное зна-
чение для установки, локальное значение и код доступа:

// помещаем все переменные конфигурации в ассоциативный массив
$vars = ini_get_all();
print_r($vars['include_path']);
Array
(
[global_value] => .:/usr/local/lib/php/
[local_value] => .:/usr/local/lib/php/
[access] => 7
)

Значение global_value берется из файла php.ini; значение local_value принимается во внимание при всех изменениях, сделанных в конфигурационном файле веб-сервера, в любом значимом файле .htaccess и в текущем сценарии. Значение access – это числовая константа, представляющая место, где это значение можно изменить.


Заметим, что имя access слегка вво-дит в заблуждение, поскольку значения параметров всегда могут быть проверены, но их не всегда можно изменить.

Если значение равно 6, то установка может быть изменена и на уровне каталогов и на системном уровне (2 + 4 = 6). На самом деле не существует переменных, модифицируемых только на уровне PHP_INI_USER или PHP_INI_PERDIR, но все переменные могут быть изменены на уровне PHP_INI_SYSTEM, поэтому параметр может принимать только значения 4, 6 или 7.

Можно также получить значения параметров, относящихся к определенному расширению, передав имя расширения функции ini_get_all():
// возвращаем только переменные, относящиеся к модулю сеанса $session = ini_get_all('session');

По соглашению переменные, относящиеся к определенному расширению, имеют префикс в виде имени расширения и точки. Поэтому, например, все переменные сеанса начинаются с session., а все переменные Java начинаются с java..

Функция ini_get() возвращает текущее значение параметра конфигурации, поэтому для проверки исходного значения из файла php.ini применяется функция get_cfg_var():
$original = get_cfg_var('sendmail_from'); // мы изменили наш адрес?

Функция get_cfg_var() возвращает то же значение, которое появляется в элементе global_value массива, возвращаемого функцией ini_get_all().

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела PHP на эту тему:
Аутентификация, основанная на cookies
Буферизация вывода в броузер
Взаимодействие в рамках Apache
Идентификация различных броузеров
Настройка обработки ошибок

Вернуться в раздел: PHP / 8. Основы Web