Привет!
Как в PHP определить, что скрипт был запущен через консоль или же под управлением web-сервер?
Видел что проверяют HTTP_USER_AGENT и REMOTE_ADDR, но на мой взгляд не совсем правильно проверять HTTP заголовки.
Привет!
Как в PHP определить, что скрипт был запущен через консоль или же под управлением web-сервер?
Видел что проверяют HTTP_USER_AGENT и REMOTE_ADDR, но на мой взгляд не совсем правильно проверять HTTP заголовки.
Вести с Хабра
Первое это проверяем определена ли константа STDIN, которая определена только в режиме командной строки. Но эта проверка работает, если PHP был запущен с использованием интерфейса SAPI CLI. Иногда PHP может быть запущен с использованием SAPI CGI и тогда проверка STDIN может всегда давать ложный результат.
Поэтому для проверки, не запущен ли PHP через CGI интерфейс, проверяем константу PHP_SAPI на наличие в ней подстроки «cgi». Но она может содержать значение cgi и если скрипт просто является cgi сценарием и запущен через тот же браузер. Так что следует проверить переменную окружения TERM которая определяет тип терминала.