Вы можете проверить, если $_SERVER['DOCUMENT_ROOT']
пусто.Он будет пустым при выполнении командной строки, поскольку это переменная, предопределенная apache.
Что интересно, $_SERVER['DOCUMENT_ROOT']
определено, но пусто.Я бы предположил, что он не будет определен вообще при использовании cli.
Вы также можете проверить, определен ли $argv
или его размер (по крайней мере, 1 при использовании CLI).Я не проверял при включении файла, но если он определен, sizeof($argv)
определенно будет 0.
Другие возможные тесты: $_SERVER['argc']
(0 при выполнении сервером, 1 при выполнении из CLI) истранный $_SERVER['_']
, определенный для пути к двоичному файлу PHP, который вообще не определяется при обслуживании.
В заключение я бы полагался на $_SERVER['argc']
(или $argc
), который является прямым счетомколичество аргументов, передаваемых в командную строку: всегда будет 0, когда сценарий обслуживается.Полагаться на $ argv сложнее: вы должны проверить, установлена ли $argv[0]
или sizeof($argv)
> 0.