• Записи 162
  • Теги 66
  • Комментарии 330

Компьютерное

Как определить, запущен ли 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;

1 комментарий:

Нет
Дмитрий
0

Можно проверить наличие $argc:
if ($argc!=0) {это комм. строка}

Написать комментарий


Задать вопрос