問題タブ [proc-open]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - proc_open 使用時の STDIN パイプからの読み取り
私は、人々がコードをオンラインでコンパイルして実行できる Web サイトを作ろうとしています。そのため、ユーザーが指示を送信するためのインタラクティブな方法を見つける必要があります。
実は最初に思い浮かぶのはexec()
またはsystem()
ですが、ユーザーが sth を入力したい場合、この方法では機能しません。したがって、 を使用する必要がありますproc_open()
。
たとえば、次のコード
使った時はこんなproc_open()
感じ
C コードを実行するときに、最初の STDOUT ストリームを取得し、数値を入力してから、2 番目の STDOUT ストリームを取得したいと考えています。しかし、コメント行のコメントを外すと、ページがブロックされます。
問題を解決する方法はありますか?すべてのデータがそこに置かれていないときにパイプから読み取るにはどうすればよいですか? または、この種の対話型プログラムを作成するためのより良い方法はありますか?
php - Windows 7 で proc_open の実行時間が長すぎる
elfinder 2.0を使用していますが、Windows 7 では機能しません。理由は、proc_open()
関数の実行に時間がかかりすぎるためです。たとえば、 のような単純なコマンドtar --version
は で 25 秒間実行されproc_open()
ます。このコードは次のとおりです。
どうすれば問題を解決できますか?
php - proc_open を使用して 2 つの C プログラムを実行する PHP
私は C で 2 つのプログラムを作成しました。1 つ目は数値を取得してその double 値を出力し、2 つ目は quadruple を出力します。
PHPで実行したい。私は proc_open を使用して実行しましたが、毎回プログラムを 1 つだけ実行すると問題なく動作します。
最初のプログラムに数値を与え、その出力を入力として 2 番目のプログラムに渡す必要があります。2 つの proc_open を使用して 2 つのプロセスを作成しても、すべてが機能しない場合。私がやりたいことは次のようなものです:
それが間違った方法であることは知っていますが、他に何も考えられないので...どんな助けも大歓迎です。注:私はWindowsで作業しています。
php - メインスクリプトで他のスクリプトを制御し、実行時にパラメーターを渡す方法
main.phpとtest.phpがあります。
- test.phpはmain.phpで実行する必要があります
- 両方のスクリプトを無限に実行する必要があります。
- main.phpは、 test.phpが実行されているかどうかを定期的にチェックし、実行されていない場合 (エラーが発生した場合) に再度実行する必要があります。
- エラーログも必要です。
- main.phpが受信した場合、それはtest.php
'test stop'
に送信'close'
され、test.phpは停止する必要があります (実行後に注文 (など) をmain.phpに送信する方法がわかりませんか?)'test stop'
私はこのサンプルを持っています:
main.php :
test.php :
これは私のコードの要約でしたが、正しく動作しません。
たとえば、スクリプトがtest.php$status = trim(fgets(STDIN));
のこの行に到着すると、入力があるまで待機し、入力を送信しない場合、スクリプトは停止し、残りのコードを実行しませんが、スクリプトをループで実行し、main.phpまで注文を実行します。彼に入力を渡します。
私は窓に取り組んでいます。
java - proc_open (php => Java) は複数の入力ストリームを持つことができますか?
私はphpでproc_openを使用してJavaアプリケーションを呼び出し、処理のために大きなテキストを送信し、返された結果をキャプチャします。1 つだけではなく、複数のテキスト文字列 (入力ストリーム) を渡すことは可能ですか?
これは私が現時点で持っているものです:
このようなことをしても、Java はそれを 1 つの入力ストリームとして認識します。
では、このようなことはまったく可能ですか?そうでない場合、代替手段はありますか?複数行の大きなテキストであるため、コマンド ライン パラメータを使用できません。
java - php proc_openがJavaに入力を渡すのが遅い
私はphpでproc_openを使用してJavaアプリケーションを呼び出し、処理するテキストを渡し、出力テキストを読み取ります。Java の実行時間は非常に長く、その理由は入力の読み取りにほとんどの時間がかかることがわかりました。それがphpのせいなのかJavaのせいなのかわかりません。
私のPHPコード:
私のJavaコード:
3800 行の Java html ファイル (スタンドアロン ファイルとしてのサイズは最大 200KB) に渡します。これらは、ログ ファイル内の実行時間の内訳です。
私の質問はこれです: なぜ入力は出力よりも 100 倍長くかかるのですか? 速くする方法はありますか?
php - php proc_open execute コマンドを使用すると出力を取得できませんか?
シェルスクリプトを実行するphp関数を書きますが、コマンドが正しく実行されると出力を取得できません。関数とシェルスクリプトは次のとおりです。
PHP 関数:
このコマンドは次のとおりです。
php - proc_open() を使用して PHP で C 実行可能ファイルを実行する
この質問を初心者だと思ったら、(もう一度)申し訳ありません。しかし、私はproc_openで本当に問題を抱えています。
C ファイルがあり、それを使用して実行し、テキストファイルproc_open()
から入力を読み取りたいと考えています。入力をフェッチして実行可能ファイルにフィードすることができました。問題は、array of fetched strings
.
PHP コードの断片:
add2.c
pipes[1] のストリーム (printf の)
質問: " $input " 要素が入力としてどのように配置されるかについて"動的な方法" はありますか?
scanf
または、ファイルから入力を取得し、 によって実行された C 実行可能ファイルにある場合はいつでもそれをフィードする、より便利な方法はありますかproc_open()
?
(ちなみに、特に私のような初心者にとっては、問題を抱えてproc_open()
いる人のために、私のコードが何らかの形で役立つことを願っています。これは、いくつかの試行後に実行するのは初めてなので、私のコードは単純です。)
そして、プロのために、meeeeeを助けてください。:( ありがとうございました!