В PHP важно определить, выполняется ли ваш код в интерфейсе командной строки (CLI) или в веб-среде. Знание контекста выполнения позволяет вам соответствующим образом настроить поведение вашего приложения. В этой статье мы рассмотрим несколько методов проверки того, работает ли PHP в режиме командной строки или в веб-режиме, дополненные разговорными объяснениями и примерами кода.
Метод 1: использование константы PHP_SAPI
Самый простой способ определить режим выполнения — использовать константу PHP_SAPI, которая означает «Интерфейс программирования серверных приложений». Он возвращает строку, указывающую тип интерфейса.
if (PHP_SAPI === 'cli') {
// Code for CLI environment
} else {
// Code for web environment
}
Метод 2: проверка переменной $_SERVER[’REMOTE_ADDR’]
При работе в веб-среде PHP устанавливает различные переменные, связанные с сервером. Одной из таких переменных является $_SERVER['REMOTE_ADDR'], которая содержит IP-адрес клиента. В среде CLI эта переменная обычно не задается.
if (isset($_SERVER['REMOTE_ADDR'])) {
// Code for web environment
} else {
// Code for CLI environment
}
Метод 3: проверка переменной $_SERVER[‘argc’]
В режиме CLI PHP устанавливает переменную $_SERVER['argc']в число аргументов командной строки, переданных в скрипт. В веб-среде эта переменная не задана.
if (isset($_SERVER['argc'])) {
// Code for CLI environment
} else {
// Code for web environment
}
Метод 4: обнаружение константы PHP_BINARY
Константа PHP_BINARYсодержит путь и имя выполняемого двоичного файла PHP. В режиме CLI он указывает на исполняемый файл PHP, тогда как в веб-среде он обычно относится к двоичному файлу веб-сервера.
if (strpos(PHP_BINARY, 'php') !== false) {
// Code for CLI environment
} else {
// Code for web environment
}
Определение того, работает ли ваш PHP-код в CLI или в веб-среде, важно для создания универсальных приложений. В этой статье мы рассмотрели четыре метода достижения этой цели: использование константы PHP_SAPI, проверка переменной $_SERVER['REMOTE_ADDR'], проверка переменной $_SERVER['argc']и обнаружение константа PHP_BINARY. Используя эти методы, вы можете адаптировать свою кодовую базу к различным контекстам и обеспечить оптимальное взаимодействие с пользователем.