2010-09-06 8 views
11

Ich schrieb ein PHP-Skript. Ich möchte es zeigen Hilfe-Nachricht, wenn mit Standard-Eingabe an ein TTY-Gerät (Terminal) vor dem Lesen und Ausführen interaktiv aufgerufen aufgerufen, aber nicht angezeigt, wenn mit einer Datei oder Stream von Rohr als Standard-Eingabe aufgerufen.Erkennen, ob stdin ein tty-Gerät (Terminal) oder Pipe in PHP ist?

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

Antwort

12

Verwenden Sie posix_isatty.

Diese Funktion akzeptiert sowohl einen Dateideskriptor (eine Ganzzahl) als auch einen PHP-Stream. Wenn es einen PHP-Stream empfängt, versucht es automatisch cast it, um einen Dateideskriptor zu erhalten und stattdessen zu verwenden.