可能重复:
Can PHP detect if its run from a cron job or from the command line?
我正在尝试确定PHP命令行脚本上的STDOUT资源是否通过管道传输到另一个命令,以便正确显示表格数据(如果输出是直接到终端,它看起来很好将表格单元格包裹在+-----+
边框中;但如果尝试使用awk
或其他命令检查该数据则不会。)
在找到this answer后,我尝试用stream_get_meta_data()
检查STDOUT资源以及我在PHP手册中可以找到的所有其他函数,这些函数在流上运行,但在每种情况下,资源都是看它是否被管道传输到另一个进程看起来完全一样。
有没有办法在PHP中找到它?
答案 0 :(得分:4)
假设你有POSIX扩展名(你可能会这样做),你可以使用posix_isatty
:
posix_isatty(STDOUT)
如果是,那么您没有输出到管道。 isatty
是在C
程序和其他程序中执行此操作的常用方法。
请注意,这并不会检查它是否专门输出到管道,只是它是否输出到交互式终端(管道不是一个)。