当我在PHP中使用echo时,变量不会打印到屏幕上

时间:2011-08-08 22:21:19

标签: php ssh

我正在尝试将主机/ IP打印到屏幕上。但是,它正在打印:“资源ID#2”。我正在使用SSH2_connection()。我阅读了doc页面,知道函数参数是主机,端口,方法......但是当我尝试fread($ host)时,主机/ ip仍然没有打印,有人可以给我一些方向吗?谢谢!

代码:

 <?php
 if (!function_exists("ssh2_connect")) die("function ssh2_connect doesn't exist");
 if(!($ssh = ssh2_connect('10.5.32.12', 22))) {
     echo "fail: unable to establish connection\n"; 
 } else {

     if(!ssh2_auth_password($ssh, 'root', '********')) {
        echo "fail: unable to authenticate\n";
     } else {
         echo "Okay: Logged in  ... ";
         $content = fread($ssh); //Line in question (want ip address to show here)
         echo "$content <br>";        //Line in quesion
         $stream = ssh2_exec($ssh, 'find / -name *.log -o -name *.txt');   
         stream_set_blocking($stream, true);
         $data = '';
         while($buffer = fread($stream, 4096)) {
             $data .= $buffer;
         }
         fclose($stream);
         echo $data; // user
     }
 }
 ?>

2 个答案:

答案 0 :(得分:0)

我相信在使用双引号时你也需要围绕变量的括号。 "{$content} <br>"

您是否使用自己的调试方法测试$ content变量是否包含信息?您可以为变量设置一个值,以测试您的echo语句是否是正确的语法。

答案 1 :(得分:0)

 $content = fread($ssh);

fread()从文件读取并将信息放入资源处理程序以供以后使用。我认为你目前没有以正确的方式使用它。

我没有看到$ ssh在哪里被定义,但我认为它拥有你想要输出的IP?如果是这种情况,只需替换

$content = fread($ssh);

使用:

echo $ssh;