Вывод экрана на PHP


У меня есть PHP-файл с командами оболочки, выполняемыми через экран, команды работают нормально, но мне было интересно, есть ли способ вывести это на PHP без записи в другой файл и чтения его на конце PHP.

PHP-trace() - это просто причудливый print_r()

$cmd = 'ls -h /';
trace(shell_exec('screen -S output -p 0 -X stuff "`echo '.$cmd.'\'\r\n\'`"'));

Веб-вывод

NULL

Вывод на экран

www-data@:/home/ubuntu$ ls -h /
bin   build  etc   initrd.img      lib         media  opt   root  selinux  sys  usr  vmlinuz
boot  dev    home  initrd.img.old  lost+found  mnt    proc  sbin  srv      tmp  var  vmlinuz.old

Есть какие-нибудь предложения?

--Редактировать --

Некоторые команды не выводятся напрямую, одна из причин, по которой я использую экран

PHP

$cmd = 's3ls';
trace(shell_exec('screen -S output -p 0 -X stuff "`echo '.$cmd.'\'\r\n\'`"'));
trace(shell_exec($cmd));

Веб-вывод

trace:NULL
trace:NULL

Экран

www-data@:/home/ubuntu$ s3ls
+---------------+--------------------------+
|     Name      |       CreationDate       |
+---------------+--------------------------+
| bucket        | 2012-05-31T13:08:51.000Z |
| bucket        | 2012-01-17T16:51:58.000Z |
| bucket        | 2012-03-31T11:19:54.000Z |
+---------------+--------------------------+
Author: Jamie Taylor, 2012-06-20

1 answers

Аннулировать passthru (строка $command [, int &$return_var ] )

Функция passthru() аналогична функции exec() в том, что она выполняет команду. Эта функция должна использоваться вместо exec() или system(), когда вывод команды Unix представляет собой двоичные данные, которые необходимо передать непосредственно обратно в браузер. Обычно для этого используется что -то вроде утилит pbmplus, которые могут напрямую выводить поток изображений. Установив Введите содержимое в изображение/gif, а затем вызовите программу pbmplus для вывода gif, вы можете создавать PHP -скрипты, которые выводят изображения напрямую.

Хотя, по-видимому, это может быть немного странным.

 1
Author: Danack, 2012-06-21 05:53:04