Правильный ответ на этот вопрос зависит от реальных намерений, стоящих за ним:
- Является ли SAPI решающим фактором (веб-контекст или нет)?
- Или информация интерпретируется как 'бегущая в tty'?
Если первых, то ответов и написанных комментариев достаточно, чтобы найти решение, которое работает.
Если последнее, приведенные здесь рецепты потерпят неудачу, если инструмент запускается как cronjob или background-job от другого демона - в этом случае я предлагаю дополнительно проверить, является ли STDIN
TTY:
function at_tty() {
return defined("\STDIN") && posix_isatty(\STDIN);
}