0

フォルダー内の数千の大きなファイルを 1 日に数回、RAR アーカイブに入れる必要があります。以前は、RAR ソフトウェア パッケージでカスタム コマンドを使用して、sFTP 経由で手動でこれを行っていました。

PHP で system() を使用して RAR コマンドを使用し、1 秒ごとに結果を返して、プロセスの進行状況を明確に示すことができるかどうか疑問に思っています。

RAR コマンドを使用すると、wget のようにターミナル ウィンドウにプログレス バーが表示されます。その進行状況バーを取得して、何らかの方法でページに表示したいと考えています。

どうすればこれを行うことができるかについてのアイデアはありますか?

ありがとう :)

4

3 に答える 3

3

PHP の popen()呼び出しを使用してプロセスを実行し、その標準出力を読み取ることができます。これにより、進行状況バーが表示されます。ただし、PHP 組み込みの rarサポートを使用すると、何がうまくいかなかったのか、その理由についてより適切な情報が得られる、より堅牢なソリューションが得られる場合があります。

于 2009-10-27T03:52:31.097 に答える
0

system()に固執する場合、できる最善のことは、プロセスからリターン コードを取得することです。成功のリターン コードを調べます。これを使用して、操作が実際に成功したかどうかを判断します。

exec()またはpassthru()を使用すると、コマンドの出力も取得できます。

popen()で魔法を使ってプログレスバーを取得できるかもしれませんが、よくわかりません。

于 2009-10-27T03:52:58.863 に答える
0

はい、 popen() が便利かもしれません。出力を取得して解析し、結果を取得できます。

于 2009-10-27T04:02:32.750 に答える