我正在使用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上获取整个字符串,但如果我尝试将其重定向到另一个文件,我会得到与上面相同的概率。
答案 0 :(得分:-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);
尝试这些方面的东西?