当前位置: 首页 > 面试题库 >

在PHP中使用实时输出运行过程

周睿范
2023-03-14
问题内容

我试图在网页上运行一个进程,该进程将实时返回其输出。例如,如果我运行“
ping”进程,则它应在每次返回新行时更新页面(现在,当我使用exec(command,output)时,我被迫使用-
c选项,等到进程完成后才能看到在我的网页上输出)。是否可以在php中做到这一点?

我也想知道当有人离开页面时杀死这种过程的正确方法是什么。在“ ping”进程的情况下,我仍然可以在系统监视器中看到正在运行的进程(有意义)。


问题答案:

这为我工作:

$cmd = "ping 127.0.0.1";

$descriptorspec = array(
   0 => array("pipe", "r"),   // stdin is a pipe that the child will read from
   1 => array("pipe", "w"),   // stdout is a pipe that the child will write to
   2 => array("pipe", "w")    // stderr is a pipe that the child will write to
);
flush();
$process = proc_open($cmd, $descriptorspec, $pipes, realpath('./'), array());
echo "<pre>";
if (is_resource($process)) {
    while ($s = fgets($pipes[1])) {
        print $s;
        flush();
    }
}
echo "</pre>";


 类似资料:
  • 本文向大家介绍PHP实现即时输出、实时输出内容方法,包括了PHP实现即时输出、实时输出内容方法的使用技巧和注意事项,需要的朋友参考一下 老生长谈了。。纯备忘 对于运行时间较长的PHP程序来说可能都需要即时输出内容来查看运行情况。 例, 按例子测试,达到了PHP即时实时输出内容的效果。

  • 问题内容: 如标题所示,ltrace在我的系统上无法正常工作。在大多数情况下,它不显示任何输出,例如 我使用的是最新的ltrace版本(来自package ),我什至尝试从源代码重新编译也没有差异。我使用Ubuntu ,内核。gcc版本是。 奇怪的是,从Internet下载的二进制文件似乎可以正常显示库调用。 我想念什么?有人能够重现该问题吗? 问题答案: 这可能与使用编译二进制文件有关。我创建了

  • 问题内容: 我只是在Linux服务器上试验PHP 。这是一个非常酷的功能,到目前为止,我真的很喜欢它。有没有办法查看命令运行时正在进行的实时输出? 例如,如果运行时正在ping通目标地址,则每次ping通时,都使用PHP显示结果吗?那可能吗? 我希望看到缓冲区正在运行时进行实时更新。也许不可能,但肯定会很好。 这是我正在尝试的代码,我尝试过的所有方式都始终在命令完成后显示结果。 我尝试过将零件循环

  • 问题内容: 我正在使用gradle作为JavaFX插件。即使在 distribution /下 构建和运行可执行文件之后,一切都可以完美运行,但只有一类: 为了多种目的,我创建了以下对象: 在IDE中运行该程序没问题,一切正常。但是,如果我构建并尝试运行.exe文件,则会得到以下-StackTrace: 我真的不明白。怎么可能找不到这个类,而我所有其他的类却都找不到呢? 我的build.gradl

  • 问题内容: 我使用以下有效的代码,问题是输出与进程完成执行时一样被打印,我想将输出实时打印到屏幕上,而在进程完成时不提供所有输出,我该如何实现? *尝试提出的解决方案时 *更新 ,我得到的输出像 问题答案: 使用此答案中提供的解决方案:流命令输出进度 一些解释: 这行: 创建一个将从提供该进程写入的输出的管道读取的。 这行: 指示扫描程序以s代替默认行来读取输入。 请注意,上面的示例仅流式处理标准

  • 我试图效仿http://dba-oracle.com/t_pl_sql_plsql_select_into_clause.htm 但是当我这样做的时候 / 它给出了几个错误: 错误(4,1): PLS-00103:在期望以下情况之一时遇到符号“DECLARE”:开始函数杂注过程子类型当前游标删除存在先前的外部语言符号“begin”被替换为“DECLARE”以继续。 和 错误(14,8):PLS-0