posix_isatty
(PHP 4, PHP 5, PHP 7)
posix_isatty — Определяет является ли файловый дескриптор интерактивным терминалом
Описание
Определяет является ли файловый дескриптор fd
ссылкой на валидный
терминал.
Список параметров
Возвращаемые значения
Возвращает TRUE
если fd
является открытым файловым дескриптором, связанным
с терминалом и FALSE
в остальных случаях.
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для управления процессами программ
- POSIX
- posix_access
- posix_ctermid
- posix_errno
- posix_get_last_error
- posix_getcwd
- posix_getegid
- posix_geteuid
- posix_getgid
- posix_getgrgid
- posix_getgrnam
- posix_getgroups
- posix_getlogin
- posix_getpgid
- posix_getpgrp
- posix_getpid
- posix_getppid
- posix_getpwnam
- posix_getpwuid
- posix_getrlimit
- posix_getsid
- posix_getuid
- posix_initgroups
- posix_isatty
- posix_kill
- posix_mkfifo
- posix_mknod
- posix_setegid
- posix_seteuid
- posix_setgid
- posix_setpgid
- posix_setrlimit
- posix_setsid
- posix_setuid
- posix_strerror
- posix_times
- posix_ttyname
- posix_uname
Коментарии
Can be useful to determine whether output is being piped elsewhere, for PHP shell scripts, for example;
#!/usr/local/bin/php
<?php
if ( !posix_isatty(STDOUT) ) {
fwrite(STDOUT, "Invalid TTY\n");
exit(2);
}
fwrite(STDOUT, "Enter you name\n");
$name = fgets(STDIN);
fwrite(STDOUT,"Hello $name\n");
exit(0);
?>
If this script is like:
script.php > outfile
outfile will contain "Invalid TTY"
It's quite complicated to understand its movements. But it determines if the file_descriptor is open AND connected to a terminal.
Thus, while receiving data from the STDIN, for example, it will return false.
This move is useful to optionally pipe STDIN to a PHP script, to avoid hanging when nothing is from STDIN.
<?php
// Simply echoes the contents from STDIN if any
// and "no stdin" if not.
echo (posix_isatty(STDIN)) ? 'no stdin' . PHP_EOL : file_get_contents('php://stdin');
?>