2009-10-27 43 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方法()是有用的。你可以得到輸出並解析它以得到結果。