posix_isatty
(PHP 4, PHP 5, PHP 7, PHP 8)
posix_isatty — ファイル記述子が対話型端末であるかどうかを定義する
説明
ファイル記述子 file_descriptor
が、
有効な端末デバイスを指しているかどうかを調べます。
パラメータ
変更履歴
バージョン | 説明 |
---|---|
8.3.0 |
通常の PHP の型変換のセマンティクスに従い、
整数を変換した場合に、型のエラーに関する E_WARNING
が発生するようになりました。
|
+add a note
User Contributed Notes 2 notes
hfuecks at phppatterns dot com ¶
20 years ago
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"
KEINOS ¶
3 years ago
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');
?>
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google