【问题标题】:Calling a system() command and bringing back the results调用 system() 命令并返回结果
【发布时间】:2009-10-27 03:38:32
【问题描述】:

我每天需要多次将文件夹中的数千个大文件放入 RAR 存档中。我曾经使用带有 RAR 软件包的自定义命令通过 sFTP 手动执行此操作。

我想知道是否可以在 PHP 中使用 system() 来使用 RAR 命令,并每隔一秒左右返回结果以清楚地指示该过程的进度。

当您使用 RAR 命令时,它会在终端窗口中绘制一个进度条,很像 wget。我想抓住那个进度条并以某种方式将其显示在页面上。

关于如何做到这一点的任何想法?

谢谢:)

【问题讨论】:

    标签: php archive


    【解决方案1】:

    您可以使用PHP popen() 调用来执行进程并读取其标准输出。这将为您提供进度条。但是,使用 PHP builtin rar 支持可能会为您提供更强大的解决方案,并更好地了解问题所在和原因。

    【讨论】:

    • 从内置的PHP rar支持中可以看出,它只支持解压RAR文件,不支持存档,这是我需要做的。不过,感谢您的链接,这对我以后需要做的事情会有所帮助:)
    【解决方案2】:

    如果您坚持使用system(),那么您能做的最好的事情就是从该过程中获取返回码。找出成功的返回码。使用它来确定您的操作实际上是否成功。

    如果您使用exec() 或passthru(),您也可以获得命令的输出。

    您也许可以通过popen() 使用一些魔法来获得进度条,但我不确定。

    【讨论】:

      【解决方案3】:

      是的,popen() 可能很有用。您可以获取输出并对其进行解析以获取结果。

      【讨论】:

        猜你喜欢
        • 2016-11-17
        • 1970-01-01
        • 1970-01-01
        • 2023-02-13
        • 1970-01-01
        • 2017-07-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多