我需要每天多次将文件夹中的数千个大文件放入 RAR 存档中。我曾经使用带有 RAR 软件包的自定义命令通过 sFTP 手动执行此操作。
我想知道是否可以在 PHP 中使用 system() 使用 RAR 命令,并每隔一秒左右返回结果,以清楚地表明该过程有多远。
当您使用 RAR 命令时,它会在终端窗口中绘制一个进度条,就像 wget 一样。我想抓住那个进度条并以某种方式将其显示在页面上。
关于我如何做到这一点的任何想法?
谢谢 :)
You can use the PHP popen() call to execute a process and read its standard output. That will get you the progress bar. However, using the PHP builtin rar support might get you a more robust solution with better information on what went wrong and why.
如果你坚持使用system()那么你能做的最好的就是从进程中获取返回码。找出成功的返回码。使用它来确定您的操作实际上是否成功。
如果您使用exec()或passthru()您也可以获得命令的输出。
您也许可以使用popen()的一些魔法来获得进度条,但我不确定。
是的,可能 popen() 很有用。您可以获取输出并对其进行解析以获取结果。