检测stdin是否是PHP中的tty设备(终端)或管道?

Cof*_*fyc 12 php stdin file pipe tty

我写了一个PHP脚本.我希望它在使用连接到tty设备(终端)的标准输入调用之前显示帮助消息,然后以交互方式进行读取和执行,但是在使用文件或来自管道的流作为标准输入调用时不显示.

有没有办法从PHP中检测到这个?

Edw*_*ang 12

使用posix_isatty.

此函数接受文件描述符(整数)和PHP流.如果它收到PHP流,它会自动尝试转换以获取文件描述符并改为使用它.