(PHP 7 >= 7.2.0, PHP 8)
stream_isatty — Check if a stream is a TTY
Determines if stream stream refers to a valid terminal type device.
This is a more portable version of posix_isatty() , since it works on Windows systems too.
stream
Example #1 stream_isatty() example
This command can be used to determine if a standard output / standard error stream is redirected to a file.
php -r "var_export(stream_isatty(STDERR));"
The above example will output something similar to:
php -r "var_export(stream_isatty(STDERR));" 2>output.txt
The above example will output something similar to:
This function returns False (output is being redirected) regardless of the form of redirection. On Windows, both of these are redirected:
- php.exe script.php > outFle.txt
- php.exe script.php | Tee outFle.txt
In the second case, Tee causes the redirection to also echo to the console.
An edge usage is: in debugging a long-running script, output is wanted both in a file for later review and also in the console so it's visible in real time. But if the script alters its output based on this function, then in the second case it will produce output as if for redirection only, even though Tee enables console output.