Как определить, что скрипт вызывается из консоли?

  • Автор темы Автор темы Splurov
  • Дата начала Дата начала

Splurov

Новичок
Как определить, что скрипт вызывается из консоли?

Раньше я просто проверял
PHP:
if (PHP_SAPI == 'cli') {
  // is cli
}
Но не везде бинарник php скомпилирован как cli, например на 1gb.ru:
Код:
w_buhmobil-ru_d7322ae7@l16 /usr/local/bin $ php -v
PHP 5.2.13 (cgi-fcgi) (built: Apr 28 2010 16:51:48)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
    with Zend Optimizer v3.3.9, Copyright (c) 1998-2009, by Zend Technologies

На сколько корректным будет проверять REQUEST_* в $_SERVER?
Например,
PHP:
if (!array_key_exists('REMOTE_ADDR', $_SERVER)) {
  // is cli
}

Или есть другой способ?
 
Остановился на
PHP:
if (PHP_SAPI == 'cli' || empty($_SERVER['REMOTE_ADDR'])) {
  // is cli
}
 
ммм,есть ещё $args , но следует учесть что эта переменная не везде видна
 
Есть, только не $args, а $argv и $argc.
И их тоже можно проверять на isset(), работает.
 
Сверху