我正在学习jQuery,我正在尝试找到一个简单的代码示例,它将针对某个条件轮询API.(即每隔几秒请求一个网页并处理结果)
我熟悉如何在jQuery中使用AJAX,我似乎无法找到让它在"计时器"上执行的"正确"方式.
我只是shell_exec在我的Linux服务器上试验PHP .这是一个非常酷的功能,到目前为止我真的很享受它.有没有办法查看命令运行时正在进行的实时输出?
例如,如果ping stackoverflow.com运行时,在ping目标地址时,每次ping时,都会用PHP显示结果?那可能吗?
我很乐意看到缓冲区正在运行时的实时更新.也许这不可能,但肯定会很好.
这是我正在尝试的代码,我尝试过的每一种方法总是在命令完成后显示结果.
<?php
$cmd = 'ping -c 10 127.0.0.1';
$output = shell_exec($cmd);
echo "<pre>$output</pre>";
?>
Run Code Online (Sandbox Code Playgroud)
我试过把这个echo部分放在一个循环中,但仍然没有运气.任何人都有任何建议让它显示屏幕上的实时输出而不是等到命令完成?
我试过exec,shell_exec,system,和passthru.它们中的每个人都在完成后显示内容.除非我使用了错误的语法或者我没有正确设置循环.
我尝试使用shell_exec以与在终端中显示的方式(同时)相似的方式在网页上输出简单的ping命令; 但它只在完成执行后显示,而我需要它显示在终端上显示,
我的代码是
<?php
$i= shell_exec("ping -c 4 google.com");
echo "<pre> $i <pre>";
?>
Run Code Online (Sandbox Code Playgroud)
它正在等待一段时间并将整个东西倾倒在一个镜头上...... PHP可以识别每行的输出并将其显示在网页上
编辑
我也试过这个
<?php
$proc = popen("ping -c 4 google.com", 'r');
echo '<pre>';
while (!feof($proc)) {
echo fread($proc, 4096);
}
echo '</pre>';
?>
Run Code Online (Sandbox Code Playgroud)
但我仍然得到相同的结果..
编辑
当我试图在终端中执行这个PHP代码时,(php test.php)它正常工作,就像我们直接在服务器上执行ping一样.但在网页上它仍然是相同的.