1

私はサーバー(debian lenny)、スペクトラムアナライザーを持っており、SteveSharplesのサイトからソースコードのコレクションをダウンロードしました。これらで。スペクトラムアナライザに接続できます-コマンドを入力して応答を取得します。

例えば:

my-atom:~/vxi11# ./vxi11_cmd 135.123.106.59
Input command or query ('q' to exit): *IDN?

そして私は得る:Rohde&Schwarz,FSV-7,102004/007,1.50 SP1

このサーバーに接続し、コマンドを記述し、PHPを使用して応答を読み取ることはできますか?私はソケットについて考えていましたが、最良の選択かどうかはわかりません。

どんな助けでも大歓迎です。

ありがとう、ペトル

4

3 に答える 3

0

execshell_execsystem、またはproc_openを使用して、外部プログラムを実行できます。

stdin、stdout、および stderr のパイプをセットアップできる proc_open をお勧めします。

proc_open リンクを確認してください。

于 2010-07-30T16:02:34.453 に答える
0

shell_execと netcatを組み合わせることができます:

<?php
$output = shell_exec('echo "TRAC? TRACE1" | netcat -q 1 135.123.106.59 5025');
echo "<pre>$output</pre>";
?>

オプションに注意してください-q 1。これにより、netcat は応答を 1 秒間待機します。「set」コマンドでは、この待機時間は必要ありません。また、*IDN?待ち時間は必要ありませんが、他の多くのクエリ コマンドは必要です

この接続に netcat を使用すると、ベア メタルに危険なほど近くなります。一般的なエラーをキャッチするシェルスクリプトを書きたいと思うかもしれません。その後、代わりに shell_exec を使用してそのスクリプトを呼び出すことができます。

もちろん、最善の方法は、Steve Sharples の無料ライブラリを使用して、彼の cmd の例を自分のニーズに合わせて変更することです。

于 2014-03-25T16:08:59.030 に答える
0

また、次のようにすることもできます:

$result = `SOME_COMMAND_HERE`;
于 2010-07-30T16:06:28.613 に答える