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

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
}
Или есть другой способ?
 

Splurov

Новичок
Остановился на
PHP:
if (PHP_SAPI == 'cli' || empty($_SERVER['REMOTE_ADDR'])) {
  // is cli
}
 

tz-lom

Продвинутый новичок
ммм,есть ещё $args , но следует учесть что эта переменная не везде видна
 

Splurov

Новичок
Есть, только не $args, а $argv и $argc.
И их тоже можно проверять на isset(), работает.
 
Сверху