linux — зачеркнутые символы на выходе потока php

Я использую php ssh2_exec для выполнения команды ps aux на удаленном сервере Linux … Сервер, инициирующий соединение, — это Ubuntu 14.04, а сервер, с которым я общаюсь, — это Centos 6.6.

Обе системы полностью обновлены, и я использую следующие версии PHP и Apache в системе Ubuntu:

apache2 2.4.7-1ubuntu4.5
libapache2-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);

$ command определяется как: $ command = «ps aux | sed ‘/[.*]/d'»;

Команда выполняется, но возвращенный текст, показывая процессы, выполняющиеся в удаленной системе, заштрихован через текст … Ниже приведена ссылка на изображение происходящего.

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

(Я бы опубликовал изображение, но я здесь новичок и мне нужна репутация;)).

Этого не происходит, когда я использую php -f в командной строке, просто в браузере — IE, Firefox и Chrome были протестированы.

Любые идеи о том, как решить эту проблему? Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

Спасибо!
Джо

0

Решение

Попробуйте проверить ваш источник 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);
?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]