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"
PHP.mk документација
posix_isatty
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
function.posix-isatty.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
function.posix-isatty.php
posix_isatty
Референца за `function.posix-isatty.php` со подобрена типографија и навигација.
posix_isatty
(PHP 4, PHP 5, PHP 7, PHP 8)
posix_isatty — Определи дали дескрипторот на датотека е интерактивен терминал
= NULL
Определува дали дескрипторот на датотека file_descriptor се однесува на валиден уред од типот терминал.
Параметри
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true if file_descriptor е отворен дескриптор поврзан со терминал и false otherwise.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.4.0 |
Постави errno (број на грешка) на EBADF кога предадениот дескриптор на датотека/поток е невалиден.
|
| 8.3.0 |
Тип на грешка E_WARNINGсе сега покренати за целобројни коерции следејќи ја вообичаената семантика за коерција на типови во PHP.
|
Види Исто така
- posix_ttyname() - Определи го името на терминалниот уред
- stream_isatty() - Провери дали поток е TTY
Белешки од корисници 2 забелешки
hfuecks на phppatterns dot com ¶
21 години пред
KEINOS ¶
пред 5 години
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');
?>