1

fwriteを使用してphpから送信されたデータを読み取り、Linuxで文字列を出力するLinuxにacプログラムがあります。

AJAX

$.ajax({
                type: "POST",
                data: {cmd:"IN"},
                url: "COMMAND.php",
                success: function(data){

    //Get only this string ">" from the stdout of linux and store it to a variable.

                    }
                });

コマンド.php

<?php

if($_POST['cmd']=="IN"){

$fd = fopen("/tmp/myFIFO","w");
fwrite(fd,"IN");
fclose(fd);

}


?>

C

char buf[255];
while((n = read(fd, buf, sizeof buf - 1)) > 0 ){ //fd is the opened pipe.

buf[n - 1] = '\0';

if(strcmp(buf,"IN")==0){
            printf("%s\n", "FF0023sff344>fdfslldlf");
          }

    }

Linux から ajax に文字列 "FF0023sff344>fdfslldlf" をキャプチャし、文字列 ">" のみを取得するにはどうすればよいですか?

4

1 に答える 1

2

おそらく、上記で行っているものとは異なるワークフローが必要になるでしょう。C プロセスを実行したままにする必要がある場合は、双方向ソケットを開く必要があります。

これを行うには、C プログラムをある種のソケット サーバーにすることを検討する必要がlistenあります。bindacceptselect

PHP 側ではsockets、関数のコレクションを調べます。

別の方法として、http ://libevent.org/のようなものを使用して C プログラムを軽量の http サーバーにしcurlてから、php 側で使用してリクエストを作成する方が簡単な場合があります。

于 2013-05-16T12:50:28.120 に答える