2009-10-27 15 views
0

我需要把几千个大文件的文件夹中成RAR压缩包,每天数次。我曾经使用与RAR软件的自定义命令通过SFTP手动完成。调用系统()命令,并带回结果

我想知道是否可以在PHP中使用system()函数使用RAR命令,并且每秒钟都会返回结果以清楚地显示进程的距离。

当您使用RAR命令时,它会在终端窗口中绘制一个非常类似wget的进度条。我要抢进度条,不知何故在页面上显示。

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

谢谢:)

回答

3

可以使用PHP popen()调用执行的过程和读取它的标准输出。这会让你获得进度条。然而,使用PHP builtin rar支持可能让你上什么地方出了错,为什么更好的信息更可靠的解决方案。

+0

从内建PHP rar支持中可以看到,它只支持提取RAR文件并且不归档它们,这是我需要做的。该链接 感谢,不过,这将是有帮助的东西,我需要做的以后的路线:) – Whitey 2009-10-27 04:21:56

0

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

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

你或许可以用popen()的一些魔法获得进度条,但我不确定。

0

是可以popen方法()是有用的。你可以得到输出并解析它以得到结果。