Deprecated: Optional parameter $keys declared before required parameter $cms_id is implicitly treated as a required parameter in /home/www/dev/work/class/blog/CmsKey.php on line 75

Deprecated: Creation of dynamic property lvesu\lvesu\controller\blog\php::$title is deprecated in /home/www/dev/work/website/lvesu/class/controller/blog/php.php on line 28

Deprecated: Creation of dynamic property lvesu\lvesu\controller\blog\php::$outlink is deprecated in /home/www/dev/work/website/lvesu/template/blog/cms/php.manual.tpl on line 2

Deprecated: Creation of dynamic property lvesu\lvesu\controller\blog\php::$status is deprecated in /home/www/dev/work/website/lvesu/template/blog/index.head.php on line 2
PHP - Manual: posix_isatty - 互联网笔记

略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: posix_isatty

2025-05-18

posix_isatty

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_isattyDetermine if a file descriptor is an interactive terminal

说明

posix_isatty(resource|int $file_descriptor): bool

Determines if the file descriptor file_descriptor refers to a valid terminal type device.

参数

file_descriptor

The file descriptor, which is expected to be either a file resource or an int. An int will be assumed to be a file descriptor that can be passed directly to the underlying system call.

返回值

Returns true if file_descriptor is an open descriptor connected to a terminal and false otherwise.

更新日志

版本 说明
8.4.0 Set errno (error number) to EBADF when the file descriptor/stream passed is invalid.
8.3.0 Type error E_WARNINGs are now raised for integer coercions following the usual PHP type coercion semantics.

参见

添加备注

用户贡献的备注 2 notes

up
2
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"
up
1
KEINOS
4 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');
?>

官方地址:https://www.php.net/manual/en/function.posix-isatty.php

冷却塔厂家 广告
中文GPT4.0无需注册 广告
北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3