私は、コマンドラインからのみ行うことができ、 'dialog'コマンドを使ってメッセージボックスを表示しようとするサーバー上で、さまざまな管理タスクを実行するヘルパースクリプトを作成しようとしています、入力、パスワードのプロンプトなどがありますが、このタスクの必要性はPHPでデータを処理する必要があります。PHPのlinux 'dialog'コマンドを使用する
私はダイアログコマンドをこのように動作させるのに問題があり、何が間違っているのか分かりません。
例here
残念ながら、それは動作しませんがあります。
PHPとexec/backtick/systemを外部アプリケーションに実行すると、IOが期待どおりに機能しないように見えます。
私はパススルーを使用している得ることができる最も近い()コマンド:
<?php
$CMD = "dialog --menu \"Please select\" 10 40 3 backup \"Backup Files\" restore \"Restore Files\"";
passthru($CMD);
?>
これはPHPはSTDOUT正しく、何も他の表示なしでの結果が、あなたが押すことができ、戻りダイアログを使用するようになる唯一の方法がありますオプションを選択します。
私はbackticks、exec()とsystem()を試しましたが、何も動作していないようです。
私が疑問に思ったのは、$ resultという変数に戻り値を得るためにPHP内からSTDERRを正しく読み込む方法でした。
他のシステム管理者も以前にこれをやっていたことがあります。
私が選択の結果として実行しなければならないコマンドがXML出力のみを生成し、それを効果的にbashで解析できないという理由で、bashを使用しない理由があります。
私の特定のアプリケーションでは、私はこの答えを受け入れられた答えとして取り上げ、調査して、うまくいかなかったproc_open()メソッドを試した後、nfoが言ったようにこれを行うことはできないと結論づけました。私は必要な解決策を得るためにreadline()を使ってダムメニューを実装しなければなりませんでした。ディレクトリブラウザを置くのが好きだったのは残念です。 – JamesB