您可以轻松使用exec()
或shell_exec()
执行系统命令,如ls -l /var/www/mysite
,然后输出命令的结果。
如何执行并显示定期将信息输出到控制台的命令的结果?
示例: 你有一个简单的Python脚本。如果从控制台运行脚本,它只会每隔10秒向控制台打印一些类型的信息,直到强制退出脚本为止。
如何使用PHP执行此python命令并以某种方式实时捕获并将输出流式传输到浏览器中?这样的事情可能吗?我认为必须涉及某种Ajax,但我不确定。
我尝试过这样的事情:
python myscript.py > output.txt
然后我计划使用Ajax定期tail
或cat
output.txt
的内容并在浏览器中显示。但是,在脚本强制退出之前,output.txt
似乎没有添加任何内容。
答案 0 :(得分:2)
您没有看到output.txt
的任何输出,因为它正在被缓冲。对于python,可以选择使其进行行缓冲。从联机帮助页:
-u Force the binary I/O layers of stdin, stdout and stderr to be unbuffered. The text I/O layer will still be
line-buffered.
所以你的命令就会变成:
python -u myscript.py > output.txt
对于PHP,flush
函数可以帮助您。