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

Работа PHP скрипта из командной строки накладывает определенные ограничения на его программирование и обработку ошибок.
В частности отсутствие $_SERVER может приводить к ошибкам и изменению логики работы:

PHP Notice:  Undefined index: REQUEST_URI in ....

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

  • При запуске из командной строки функция «php_sapi_name» возвращает значение «cli», при запуске в качестве CGI-модуля «cgi» или «fast-cgi», и имя сервера — если как модуль apache.
    $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;
  • Можно проверить наличие $argc:
    if ($argc!=0) {
    echo 'Запуск из командной строки';
    }

 

Вы можете оставить комментарий ниже.