Phpinfo: примеры (PHP)

Использование phpinfo для получения данных о конфигурации PHP
Раздел: Информация о PHP
phpinfo(int $flags = INFO_ALL): bool
Функция phpinfo в PHP

Функция phpinfo() предоставляет подробные сведения о текущей конфигурации PHP. Она используется для отладки, проверки настроек сервера и модулей, а также для получения информации о версии PHP и окружении.

Назначение и применение

Вызов функции выводит в браузер структурированную информацию. Это полезно на этапе разработки для проверки активации расширений, значений конфигурационных директив и переменных окружения.

Аргументы функции

Функция принимает один необязательный параметр flags, который определяет тип выводимой информации. Константы могут комбинироваться с помощью побитового ИЛИ.

  • INFO_GENERAL (1) – основная информация: версия PHP, путь к конфигурационному файлу, окружение.
  • INFO_CREDITS (2) – список разработчиков PHP и модулей.
  • INFO_CONFIGURATION (4) – текущие значения конфигурационных директив (php.ini).
  • INFO_MODULES (8) – список загруженных модулей и их настроек.
  • INFO_ENVIRONMENT (16) – переменные окружения ($_ENV).
  • INFO_VARIABLES (32) – предопределенные переменные ($_GET, $_POST и др.).
  • INFO_LICENSE (64) – информация о лицензии PHP.
  • INFO_ALL (-1) – вывод всей доступной информации.
Примеры использования phpinfo
Базовый вызов

Вывод всей стандартной информации:

<?php
phpinfo();
?>

Результат:

(Отображается полная страница с таблицами, содержащими данные о версии PHP, конфигурации, модулях, переменных окружения и т.д.)
Вывод конкретных разделов

Использование флагов для выбора информации:

<?php
// Выводим только конфигурационные настройки
phpinfo(INFO_CONFIGURATION);
?>
<?php
// Выводим список модулей и переменные окружения
phpinfo(INFO_MODULES | INFO_ENVIRONMENT);
?>
Похожие функции в PHP
  • phpversion() – возвращает строку с номером версии PHP. Удобна для быстрой проверки.
  • ini_get_all() – возвращает массив всех конфигурационных директив и их значений. Позволяет программно обрабатывать настройки.
  • get_loaded_extensions() – возвращает массив имен загруженных расширений. Для получения деталей по конкретному расширению используют phpinfo(INFO_MODULES) или extension_loaded().
  • $_SERVER, $_ENV – суперглобальные массивы. Содержат часть информации, аналогичной разделам INFO_ENVIRONMENT и INFO_VARIABLES.

phpinfo() предпочтительна для визуального анализа, а альтернативные функции – для программного доступа к данным внутри скриптов.

Аналоги функции в других языках

Phpinfo в Python

Модуль sys и platform предоставляют информацию о среде выполнения.

import sys, platform
print("Версия Python:", sys.version)
print("Платформа:", platform.platform())
# Детальная информация о сборке
print(sys.version_info)
Версия Python: 3.11.0 (main, Oct 24 2022, 18:26:48) [GCC 12.2.0]
Платформа: Linux-6.1.0-21-amd64-x86_64-with-glibc2.36
JavaScript (Node.js)

Глобальный объект process содержит данные о процессе и среде.

console.log("Версия Node.js:", process.version);
console.log("Платформа:", process.platform);
console.log("Архитектура:", process.arch);
// Вывод переменных окружения
console.log("Путь:", process.env.PATH);
Версия Node.js: v20.11.0
Платформа: linux
Архитектура: x64

Phpinfo в MySQL

Для получения системной информации используют команды STATUS и SHOW VARIABLES.

STATUS;
-- Или
SHOW VARIABLES LIKE '%version%';

В отличие от phpinfo, эти инструменты предоставляют информацию в рамках своей среды, а не о языке в целом.

Типичные ошибки
Вывод до отправки HTTP-заголовков

Если до вызова phpinfo были отправлены данные или заголовки, может возникнуть ошибка.

<?php
echo "Текст перед phpinfo";
phpinfo(); // Может вызвать предупреждение
?>
Warning: Cannot modify header information - headers already sent by...
Использование в продакшене

Оставленный вызов phpinfo на публичном сервере создает угрозу безопасности, раскрывая конфигурацию.

Неверная интерпретация флагов

Передача неподдерживаемого значения флага не приводит к ошибке, но результат может быть неожиданным.

<?php
phpinfo(999); // Выводит стандартный полный отчет (INFO_ALL)
?>
Изменения в последних версиях PHP

В PHP 8.0.0 изменено значение по умолчанию для параметра flags. Теперь по умолчанию используется INFO_ALL (ранее было INFO_GENERAL | INFO_CONFIGURATION | INFO_MODULES | INFO_ENVIRONMENT | INFO_VARIABLES).

В PHP 8.1.0 добавлена константа INFO_LICENSE для вывода информации о лицензии.

<?php
// В PHP 8+ вызов без параметров выводит все разделы
phpinfo();
?>
Расширенные примеры
Сохранение вывода в файл

Использование буферизации вывода для записи информации в файл.

Пример php
<?php
ob_start();
phpinfo(INFO_MODULES);
$info = ob_get_clean();
file_put_contents('modules_info.html', $info);
echo "Информация о модулях сохранена.";
?>
Программный анализ конфигурации

Получение определенной директивы после вывода phpinfo в буфер и парсинга.

Пример php
<?php
ob_start();
phpinfo(INFO_CONFIGURATION);
$info = ob_get_clean();
if (preg_match('/memory_limit.*>(.*)<\/td>/i', $info, $matches)) {
    echo "Лимит памяти: " . trim($matches[1]);
}
?>
Лимит памяти: 128M
Проверка активации конкретного расширения

Альтернатива функции extension_loaded с визуальным подтверждением.

Пример php
<?php
ob_start();
phpinfo(INFO_MODULES);
$info = ob_get_clean();
if (strpos($info, 'curl') !== false) {
    echo "Расширение cURL активно.";
} else {
    echo "Расширение cURL не найдено.";
}
?>
Вывод информации в виде простого текста

Функция всегда выводит HTML. Для получения текстового представления можно использовать удаление тегов.

Пример php
<?php
ob_start();
phpinfo();
$info = ob_get_clean();
echo strip_tags($info);
?>

PHP phpinfo function comments

En
Phpinfo Outputs information about PHP's configuration