Освоение PHP: проверка запуска сценария в интерфейсе командной строки (CLI)

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

Метод 1: использование константы PHP_SAPI
Константа PHP_SAPI предоставляет информацию об используемом API сервера (SAPI). Чтобы проверить, работает ли скрипт в CLI, мы можем сравнить значение PHP_SAPI со значением «cli», используя оператор if. Вот пример:

if (PHP_SAPI === 'cli') {
    echo "Running in the Command Line Interface (CLI).";
} else {
    echo "Not running in the CLI.";
}

Метод 2: проверка переменной $_SERVER[’argc’]
Переменная $_SERVER[’argc’] содержит количество аргументов, передаваемых сценарию при выполнении из командной строки. Если сценарий выполняется в CLI, эта переменная будет иметь значение больше нуля. Вот пример:

if ($_SERVER['argc'] > 0) {
    echo "Running in the Command Line Interface (CLI).";
} else {
    echo "Not running in the CLI.";
}

Метод 3: использование константы PHP_BINARY
PHP_BINARY предоставляет путь и имя двоичного файла PHP, который в данный момент выполняет сценарий. Если сценарий выполняется в CLI, эта константа будет иметь значение. Вот пример:

if (defined('PHP_BINARY')) {
    echo "Running in the Command Line Interface (CLI).";
} else {
    echo "Not running in the CLI.";
}

Метод 4: проверка константы PHP_INT_SIZE
Константа PHP_INT_SIZE представляет собой количество байтов, которые PHP использует для хранения целого числа. В CLI PHP_INT_SIZE будет иметь значение больше или равное 4. Вот пример:

if (PHP_INT_SIZE >= 4) {
    echo "Running in the Command Line Interface (CLI).";
} else {
    echo "Not running in the CLI.";
}

Метод 5: проверка переменной $_SERVER[’SERVER_SOFTWARE’]
Переменная $_SERVER[’SERVER_SOFTWARE’] содержит информацию о программном обеспечении веб-сервера, на котором выполняются сценарии PHP. В CLI эта переменная будет неопределенной или пустой. Вот пример:

if (!isset($_SERVER['SERVER_SOFTWARE']) || empty($_SERVER['SERVER_SOFTWARE'])) {
    echo "Running in the Command Line Interface (CLI).";
} else {
    echo "Not running in the CLI.";
}

Определение того, запущен ли PHP-скрипт в CLI, имеет решающее значение для эффективной обработки различных сценариев. Используя такие методы, как проверка константы PHP_SAPI, проверка переменной $_SERVER[‘argc’], проверка константы PHP_BINARY, проверка константы PHP_INT_SIZE или проверка переменной $_SERVER[‘SERVER_SOFTWARE’], разработчики могут адаптировать свой код в соответствии с специфическая среда. Освоив эти методы, разработчики PHP могут повысить надежность и универсальность своих скриптов.