调用 system() 命令并返回结果

发布于 2024-08-09 14:27:26 字数 259 浏览 2 评论 0原文

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

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

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

关于我如何做到这一点有什么想法吗?

谢谢 :)

I need to put several thousand large files in a folder into a RAR archive several times a day. I used to do this manually via sFTP using a custom command with the RAR software package.

I'm wondering if it would be possible to use the RAR command using system() in PHP, and bring back the results every second or so to get a clear indication of how far along the process is.

When you use the RAR command, it draws a progress bar in the terminal window much like wget. I want to grab that progress bar and somehow display it on a page.

Any ideas on how I could do this?

Thanks :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

怎言笑 2024-08-16 14:27:26

您可以使用 PHP popen() 调用来执行进程并读取其标准输出。这会给你进度条。但是,使用 PHP 内置 rar 支持可能会为您带来更强大的解决方案,提供有关错误原因及其原因的更好信息。

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.

浅唱々樱花落 2024-08-16 14:27:26

如果您坚持使用 system() 那么您能做的最好的就是获得从进程返回代码。查看成功的返回码是什么。用它来确定您的操作是否确实成功。

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

您也许可以使用 popen(),但我不确定。

if you stick with system() then the best you can do is get the return code back from the process. Find out what the return code is for success. Use it to determine if your operation was, in fact, successful.

If you use exec() or passthru() you can get the output of the command as well.

You might be able to get the progress bar using some magic with popen(), but I am not sure.

我喜欢麦丽素 2024-08-16 14:27:26

是的,popen() 可能很有用。您可以获取输出并解析它以获得结果。

Yes may be popen() is useful. You can get the output and parse it to get the results.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文