0

javascript/PHP でコマンドラインをエミュレートするというアイデアをいじっています。基本的な考え方は、コマンド ラインで行うように C++ プログラムを実行できるようにすることです。

JavaScript を使用して基本的なコンソールを作成し、C++ のコード パーサーを作成して、元のソースに特定のものを追加し、PHP プログラム実行スクリプトが入力要求の発生時またはプログラムの終了時を認識できるようにしました。ここで、PHP が javascript に何を表示 (出力) し、入力を要求するかを伝えることができるように、javascript (コンソール Web アプリ) と PHP (プログラム実行) の間で通信できるようにしたいと考えています。

私はAJAXでそれを計画していました。ユーザーがコンソール (javascript end) でプログラム実行コマンドを入力すると、実行状態に切り替わり、プログラム名で PHP スクリプトに要求が送信されます。スクリプトはプロセスを開始し、結果をエコーし​​て終了します。リクエスト応答に基づいて、javascript は再び PHP スクリプトにリクエストを送信します。PHP スクリプトは、リクエストが終了した場所を選択し、javascript が取得する別の結果をエコーし​​ます。これは、PHP スクリプトがエラー文字列または終了文字列をエコーするまで続きます。

AJAX で多くの単純な試みを行った結果、私の考えが完全に間違っていたことを知りました。両端間で通信する別の方法があるかどうか疑問に思っていました。PHP スクリプトの状態 (リソース、変数、ファイル ハンドル) を保存して、javascript 側から要求を送信するたびに、最後に中断したところから継続して出力を取得できる方法はありますか?

私はまだそれを見つけることができていないので、このアプローチは希望的観測であると信じています.

いくつかの洞察をいただければ幸いです。

4

3 に答える 3

6

PHP セッション

セッション

PHP でのセッション サポートは、後続のアクセス間で特定のデータを保持する方法で構成されています。これにより、よりカスタマイズされたアプリケーションを構築し、Web サイトの魅力を高めることができます。すべての情報は、セッション参照セクションにあります。

于 2012-11-28T22:02:26.243 に答える
0

PHP セッション ライブラリ (epascarello の提案による) を使用するのがおそらく最善の策です。ただし、「独自に作成」したい場合、または PHP セッションなどのライブラリがどのように機能するかを理解したい場合は、基本的な要点は次のとおりです。

  1. サーバーからクライアントに最初に渡したいデータがある場合は、そのデータをページに書き出します。たとえば、<script>var serverData = <?= serverDataVariable ?>;(私の PHP は少し錆びています。構文が間違っている場合はご容赦ください)。

  2. 最後にサーバーに渡したいデータがある場合は、そのデータを HTML フォームに入れ、そのフォームのアクションをサーバー側ハンドラーの URL に設定します。このようにして、ユーザーがフォームを送信すると、フォーム内のすべてのデータがその URL に送信されます (フォームの設定方法に応じて、GET または POST パラメーターで)。

  3. 1. と 2. の間でいつでも通信したい場合は、AJAX を使用する必要があります (もちろん、 comet も使用できますが、これは高度な機能なので心配する必要はありません)。AJAX は、ブラウザーの XmlHttpRequest を使用して、ページの変更を必要とせずに「舞台裏で」のみ、基本的にフォームの送信を行います。AJAX リクエストは (フォーム送信と同様に) パラメータを提供でき、サーバーからのデータも返します (最初にそのデータをページに書き込んだ場合とほぼ同じです)。

于 2012-11-28T22:07:48.110 に答える
0

おそらくRatchetを使用して、AJAX よりも websocket をお勧めします。

これは PHP ではなく Node.js で書かれていますが、tty.js からヒントを得られるかもしれません。

幸運を!

于 2012-11-28T22:07:49.873 に答える