Как определить, запущен ли скрипт в консоли?

Корректный метод определения способа запуска скрипта вглядит так:

$is_console = PHP_SAPI == 'cli' || (!isset($_SERVER['DOCUMENT_ROOT']) && !isset($_SERVER['REQUEST_URI']));

Константа PHP_SAPI

PHP_SAPI (string) — Серверное API данной сборки PHP. В данной константе хранится то же значение, что возвращает функция php_sapi_name().

php_sapi_name()

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

string php_sapi_name ( void ) — Возвращает тип интерфейса между веб-сервером и PHP

Описание

Возвращает строку в нижнем регистре, содержащую описание типа интерфейса (Server API, SAPI) которым пользуется PHP. Например, в CLI PHP эта строка примет значение "cli", в то время как с Apache может быть несколько разных значений в зависимости от конкретного SAPI.

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

Возвращает тип интерфейса в виде строки в нижнем регистре.

Возможные возвращаемые значения (список может быть неполным): aolserver, apache, apache2filter, apache2handler, caudium, cgi (до PHP 5.3), cgi-fcgi, cli, cli-server, continuity, embed, fpm-fcgi, isapi, litespeed, milter, nsapi, phttpd, pi3web, roxen, thttpd, tux, и webjames.

Пример

<?php
$sapi_type = php_sapi_name();
if (substr($sapi_type, 0, 3) == 'cgi') {
    echo "Вы используете CGI PHP\n";
} else {
    echo "Вы используете не CGI PHP\n";
}
?>

  1. PHP
  2. Примеры