Вывод экрана на 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 |
+---------------+--------------------------+
1 answers
Аннулировать passthru (строка $command [, int &$return_var ] )
Функция passthru() аналогична функции exec() в том, что она выполняет команду. Эта функция должна использоваться вместо exec() или system(), когда вывод команды Unix представляет собой двоичные данные, которые необходимо передать непосредственно обратно в браузер. Обычно для этого используется что -то вроде утилит pbmplus, которые могут напрямую выводить поток изображений. Установив Введите содержимое в изображение/gif, а затем вызовите программу pbmplus для вывода gif, вы можете создавать PHP -скрипты, которые выводят изображения напрямую.
Хотя, по-видимому, это может быть немного странным.