Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 捕获和显示exec/shell\u exec定期输出?_Php - Fatal编程技术网

Php 捕获和显示exec/shell\u exec定期输出?

Php 捕获和显示exec/shell\u exec定期输出?,php,Php,您可以轻松地使用exec()或shell\u exec()执行系统命令,如ls-l/var/www/mysite,然后输出命令的结果 如何执行和显示定期向控制台输出信息的命令的结果 您有一个简单的Python脚本。如果您从控制台运行脚本,它只需每隔10秒向控制台打印一些类型的信息,直到您强制退出脚本为止 如何使用PHP执行此python命令并以某种方式实时捕获输出并将其流式传输到浏览器中?这样的事情可能吗?我想可能会涉及到某种Ajax,但我不确定 我试过这样做: python myscript.

您可以轻松地使用
exec()
shell\u exec()
执行系统命令,如
ls-l/var/www/mysite
,然后输出命令的结果

如何执行和显示定期向控制台输出信息的命令的结果

您有一个简单的Python脚本。如果您从控制台运行脚本,它只需每隔10秒向控制台打印一些类型的信息,直到您强制退出脚本为止

如何使用PHP执行此python命令并以某种方式实时捕获输出并将其流式传输到浏览器中?这样的事情可能吗?我想可能会涉及到某种Ajax,但我不确定

我试过这样做:

python myscript.py > output.txt

然后我计划使用Ajax定期跟踪
output.txt
的内容,并在浏览器中显示。但是在强制退出脚本之前,
output.txt
似乎没有添加任何内容。

您看不到任何输出到
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,该函数应该会对您有所帮助。

看起来这是正确的方法,但我认为PHP仍然在缓冲一些东西。。。谢谢您的回复。@Jakobud,您是否尝试过在PHP脚本中手动调用
flush
?啊,我还没有尝试过。我正朝那个方向走,看看是否行得通。谢谢。请检查这个问题-,它可能具有所需的功能。