PHP流输出中的划线字符



我使用php ssh2_exec在远程Linux服务器上执行ps aux命令…启动连接的服务器是Ubuntu 14.04,我正在通信的服务器是Centos 6.6。

两个系统都是完全更新的,我在Ubuntu系统上使用以下版本的PHP和Apache:

输入 2.4.7-1ubuntu4.5libapache2-mod-php5 5.5.9 + dfsg-1ubuntu4.11

php5 5.5.9 + dfsg-1ubuntu4.11

我使用以下代码发送命令并捕获流:

echo '<pre>';
$stream = ssh2_exec($connection, $command);
stream_set_blocking($stream, true);
$stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDIO);
while($line = fgets($stream_out)) {
           flush();
           echo $line."<br />";
       }
echo '</pre>';
echo '<br />';
unset($connection);

命令的定义是:美元$命令="ps辅助| sed/[*]。/d";

命令运行,但是返回的文本虽然显示了远程系统上运行的进程,但却被文本击倒…下面是一个图片链接,说明正在发生的事情。

https://www.joeman1.com/images/stikethoughtest.png

(我本想把图片贴出来,但我是新来的,需要一些名声;))。

当我在命令行上使用php -f时不会发生这种情况,只是在浏览器中测试了IE, Firefox和Chrome。

对于如何解决这个问题有什么想法吗?如果您需要更多的信息,请告诉我。

谢谢!乔

试着检查你的HTML源代码。或:

<?php
echo '<pre>';
$stream = ssh2_exec($connection, $command);
stream_set_blocking($stream, true);
$stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDIO);
while($line = fgets($stream_out)) {
           flush();
           // convert the string to HTML Entities
           // Since you're getting data from a stream, no telling what might come out.
           echo htmlentities($line)."<br />";
       }
echo '</pre>';
echo '<br />';
unset($connection);
?>

相关内容

  • 没有找到相关文章

最新更新