Работа 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 'Запуск из командной строки'; }