proc_openを使用して、サーバープログラムに接続するTelnetセッションを起動しています。接続は問題ありませんが、応答を受け取ったときに、文字列全体がいくつかの文字の後に切り取られているため、ファイルに保存できません。
これが私のスニペットです:
$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 );
また、netcatとexecを使用してみました。
exec( "echo \"helo quit\" | netcat localhost 2323 >> $logPath" );
しかし、私は同じ結果になりました。
コンソールからtelnet/netcatコマンドを実行すると、文字列全体がstdoutに表示されますが、別のファイルにリダイレクトしようとすると、上記と同じ確率になります。