1

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に表示されますが、別のファイルにリダイレクトしようとすると、上記と同じ確率になります。

4

1 に答える 1

-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);

それらの線に沿って何かを試してみませんか?

于 2012-09-21T14:18:47.550 に答える