PHP Conference Nagoya 2025

posix_isatty

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

posix_isattyDosya tanıtıcısı bir etkileşimli uçbirimle ilişkili mi diye bakar

Açıklama

posix_isatty(resource|int $dt): bool

dt dosya tanıtıcısı bir etkileşimli uçbirimle ilişkili mi diye bakar.

Bağımsız Değişkenler

dt

resource veya int türünde olması beklenen dosya tanıtıcı. int türünde olanın, doğrudan ilgili sistem çağrısına aktarılabilen bir dosya tanıtıcısı olduğu varsayılır.

Dönen Değerler

dt bir uçbirime bağlı açık bir dosya tanıtıcısı ise true, diğer tüm durumlarda false döner.

Sürüm Bilgisi

Sürüm: Açıklama
8.3.0 Tamsayı zorlamaları için artık normal PHP tür zorlama semantiğini izleyen tür hatası uyarıları (E_WARNING) oluşturuluyor.

Ayrıca Bakınız

add a note

User Contributed Notes 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
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');
?>
To Top