Как определить, запущен ли PHP из командной строки

Иногда при написании скриптов, предназначенных для выполнения длительных операций, возникает необходимость определить, каким именно способом запущен PHP-интерпретатор: из командной строки или же из Web-сервера. Помочь в этом может функция php_sapi_name(), которая возвращает строку, описывающую SAPI (подсистему сервера), которая использовалась.

При запуске из командной строки функция возвращает значение "cli", при запуске в качестве CGI-модуля "cgi" или "fast-cgi", а если как модуль сервера — то имя этого сервера.

Важно отметить, что если из командной строки скрипт запускается не с помощью php, а с помощью php-cgi, то и функция будет возвращать cgi, а так же будут применены ограничения по времени и памяти, заданные в php.ini (memory_limit и max_execution_time).

Пример кода для проверки:

$sapi = php_sapi_name();
if ($sapi=='cli') echo 'Запуск из командной строки';
elseif (substr($sapi,0,3)=='cgi') echo 'Запуск в режиме CGI';
elseif (substr($sapi,0,6)=='apache') echo 'Запуск в режиме модуля Apache';
else echo 'Запуск в режиме модуля сервера '.$sapi;