2011-06-17 152 views
1

我只想看看Telnet流中最后两行是什么的简单方法。例如,如果你可以想象一个终端窗口,我只想输入一个命令,敲回车,然后看看响应是什么。到目前为止,我可以执行命令,但是我在评估响应时遇到了问题。 stream_get_line不是返回两行响应,而是返回流中的每一行。有没有办法“收听”到Telnet流?

任何人都可以提出一个函数或可能更好的方式来写它吗?

$con = @pfsockopen("10.30.96.55", 23, $errno, $errstr, 30); 

fputs($con, "ipaddress get\r"); 

while (!feof($con)) { 
    $response = stream_get_line($con, 100, "\n"); 
} 

echo $response; 

这可能是我不完全了解stream_get_line();如果我在做一些愚蠢的事情,有人请帮助我。谢谢!

回答

1

经过fgets()的更多实验后,我已经能够达到预期的效果。

不是:

while (!feof($con)) { 
    $response = stream_get_line($con, 100, "\n"); 
} 

我使用:

while (($buffer = fgets($con, 5)) !== false) { 
    $total .= $buffer; 
} 
相关问题