2009-07-07 17 views
1

私はproc_openを使ってサーバプログラムに接続しているtelnetセッションを起動しています。 接続はOKですが、返信を受け取ったときに文字列全体をファイルに保存することはできません。私もnetcatをとexecを使用してみましたproc_openからのコンソール出力をキャプチャ

$descriptorSpec = array(0 => array("pipe", "r"), 
         1.=> array("file", $logPath, "w")); 
$process = proc_open("telnet localhost 2323", $descriptorSpec, $pipes); 
fwrite($pipes[0], "helo" . PHP_EOL); 
fwrite($pipes[0], "quit" . PHP_EOL); 

は、ここに私のスニペットです

exec("echo \"helo quit\" | netcat localhost 2323 >> $logPath"); 

が、私は同じ結果を持っていました。

コンソールからtelnet/netcatコマンドを実行すると、stdoutに文字列全体が表示されますが、別のファイルにリダイレクトしようとすると、上記と同じ問題が発生します。

答えて

-1
$smtpConnect = fsockopen($server, 25, $errno, $errstr, 2)){ 
$smtpResponse = fgets($smtpConnect); 
$logArray['connection'] = $smtpResponse; 
echo $logArray['connection']; 
fputs($smtpConnect, "EHLO LOCALHOST". "\n\r"); 
$smtpResponse = fgets($smtpConnect); 

これらの行に沿って試してみてください。

+0

あなたは質問に答えていません - *ファイルへの応答の書き方*。この作品に焦点を当てて、役に立つ答えを提供してください。 –

関連する問題