Frage

Ich schrieb einen PHP-Skript. Ich will es Hilfemeldung zeigen, wenn sie mit der Standardeingabe mit einem TTY-Gerät (Terminal) vor dem Lesen und Ausführen interaktiv, aber derzeit Show genannt, wenn sie mit einer Datei oder einen Strom von der Leitung als Standardeingabe bezeichnet.

Gibt es eine Möglichkeit, dies von PHP zu erkennen?

War es hilfreich?

Lösung

Verwenden Sie posix_isatty .

Diese Funktion akzeptiert sowohl einen Dateideskriptor (eine ganze Zahl) und einen PHP-Stream. Wenn es einen PHP-Strom empfängt, wird es automatisch versucht, warf es um einen Dateideskriptor zu erhalten, und es stattdessen verwenden.

Andere Tipps

Seit 7.2 PHP können Sie verwenden stream_isatty , die auch unter Windows funktioniert.

Zum Beispiel:

php -r "var_dump(stream_isatty(STDERR));"

Ergebnisse in

bool(true)

Aber

php -r "var_dump(stream_isatty(STDERR));" 2>output.txt

Ergebnisse in

bool(false)

(dies funktioniert natürlich auf STDOUT auch).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top