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 回答