2

だから、私はこのシナリオを持っています:

Debian、XAMPP、およびいくつかの CLI アプリケーションを実行する組み込みデバイス。

これらの CLI アプリケーションはインタラクティブで、毎秒データを更新し、ユーザーは端末にコマンドを入力して動作を変更できます。

ターミナルを使用せずに、これらのアプリケーションから PHP/HTML の開始/停止/対話/データの読み取りで WebGui を構築するにはどうすればよいですか? proc_open または exec を使用する必要がありますか? CPU キラー ループを作成せずにデータを更新する最善の方法は何ですか?

ありがとうございました。

4

1 に答える 1

1

インタラクティブなアプリケーションとはどういう意味ですか? シェルから呼び出してコマンドを送信しますか (のようにuser@device$ application --stop)、または独自のシェルを提供しますか (postgres や mysql CLI クライアントなど)?

exec() を使用してコマンドを送信し、出力を読み取ります。

$ls_output = exec('ls -l');

アプリケーションの出力をファイルにリダイレクトするだけで継続的なアプリケーションの出力を保存し、Web ページがロードされたときに PHP を使用してこのファイルから読み取ることができます。たとえば10秒に1回、ページを自動的にリロードするJavaScriptを追加すると、CPUが殺されることはありません。このようなもの:

user@device$ application --do-some-work > application_output

そしてPHPで:

$app_output = file_get_contents("application_output");

または、GNU CLI ツールと PHP exec() を使用しても:

$app_output = exec('tail -n 100 application_output | grep FAIL');

しかし、PHP で出力データをフィルタリングできるため、自転車を発明したように思えます。

于 2012-05-30T12:33:07.503 に答える