相关疑难解决方法(0)

除非换行符在格式字符串中,为什么printf在调用后不会刷新?

printf除非换行符在格式字符串中,为什么在调用后不刷新?这是POSIX的行为吗?我怎么可能printf每次都立即冲洗?

c printf flush

509
推荐指数
10
解决办法
33万
查看次数

有没有办法让PHP实时将数据打印到Web浏览器?

例如,如果我有一个echo语句,则无法保证浏览器可能立即显示它,可能会一次显示几十个echo语句,并且可能会等到整个页面完成后再显示任何内容.

有没有办法让每个echo在执行时出现在浏览器中?

php

9
推荐指数
2
解决办法
1万
查看次数

PHP:在Web浏览器中输出system/Shell_exec命令输出


我尝试使用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一样.但在网页上它仍然是相同的.

javascript php

7
推荐指数
2
解决办法
5255
查看次数

运行带有实时输出到 Tkinter GUI 的进程

我试图在 Tkinter python 中创建一个 GUI。我想将工具的输出显示到我的 Tkinter 界面。该工具在命令行中运行良好,但它是一个连续扫描器。有点像一个连续的 ping(我的意思是 Linux 中没有选项的 ping 命令)。

现在的问题是因为 ping 的输出永远不会完成,因此我无法在 Tkinter 中打印输出。它还使我的应用程序冻结。几秒钟后我也无法停止命令以显示输出。 在 PHP 中使用实时输出运行进程 我发现上面的链接对 php 很有帮助,但是如何在 python 中转换此代码:

/sf/answers/430094941/

这是我想在 tkinter 框架上显示的一些示例代码

#!/usr....

import subprocess
x = subprocess.call(["ping", "127.0.0.1"])
print x
Run Code Online (Sandbox Code Playgroud)

这在命令行上效果很好,但我没有在 tkinter 界面上获得输出。

python tkinter python-2.7 python-3.x

5
推荐指数
1
解决办法
6511
查看次数

读取流中的实时整个输出

注:这篇文章有与此不同岗位,其接受的答案每次只读取每一行。

我必须在服务器端对 3D 模型进行切片以进行 3D 打印,该过程将花费一些时间。所以我要给用户展示进程,我用redis来存储进程。我想每 0.5 秒刷新一次进程。比如sleep 0.5秒,读取pip中的所有内容,每次都处理。

现在我已经尝试了以下两个,第一个将保持直到完成。第二种使用while不是妥当,它会一直写redis会导致客户端读取进程请求一直拖到最后。

我试过这两个:

第一个将保持直到命令完成。

$descriptorspec = array(
    0 => array("pipe", "r"),
    1 => array("pipe", "w"),
    2 => array("pipe", "w")    //here curaengine log all the info into stderror
);
$command = './CuraEngine slice -p -j ' . $fdmprinterpath . ' -j ' . $configpath . ' -o ' . $gcodepath . ' -l ' . $tempstlpath;
$cwd = '/usr/local/curaengine';
$process = proc_open($command, $descriptorspec, $pipes, $cwd);
if(is_resource($process))
{
    print stream_get_contents($pipes[1]);  //This will …
Run Code Online (Sandbox Code Playgroud)

php real-time pipe process stream

5
推荐指数
1
解决办法
1059
查看次数

从 php 执行 bash 脚本并立即输出回网页

我有一组 bash 和 Perl 脚本

  1. 开发在 Linux Box 上部署所需的目录结构
  2. (可选)从 svn 导出代码
  3. 从这个源构建一个包

这在终端上运行良好。现在,我的客户请求此流程的 Web 界面。

例如,某些页面上的“创建新包”按钮将一一调用上述步骤,并将输出作为脚本回显返回给用户,而不是在整个脚本执行时。

是否可以将 bash 脚本的即时输出发送到通过程序执行函数(系统、exec、passthru ...或任何其他适合此流程的东西)调用它的网页或 php 脚本?

优雅为何要这么做?

在做这样的事情时我应该采取哪些安全预防措施(如果可能的话)?

编辑 经过一番搜索,我找到了部分解决方案,但仍然无法正常工作:

$cmd = 'cat ./password.txt|sudo  -S  ./setup.sh ';

$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 …
Run Code Online (Sandbox Code Playgroud)

php bash perl nonblocking

4
推荐指数
1
解决办法
1243
查看次数

如何在PHP exec函数中显示进度栏

我正在使用PHP的exec()功能在PHP中运行外部脚本。我一直在寻找各种选项来创建进度条。我可以通过AJAX创建普通的旋转式装载机,但是无法达到进度条。有什么办法吗?

php shell cmd exec

1
推荐指数
1
解决办法
4868
查看次数

标签 统计

php ×5

bash ×1

c ×1

cmd ×1

exec ×1

flush ×1

javascript ×1

nonblocking ×1

perl ×1

pipe ×1

printf ×1

process ×1

python ×1

python-2.7 ×1

python-3.x ×1

real-time ×1

shell ×1

stream ×1

tkinter ×1