Как распарсить ответ от linux?

Добрый день! Мне нужно выполнить команду на сервере из под php на yii2, и я ее выполняю с помощью стороннего компонента Yii2ssh, а вот ответ я получаю строкой, и не могу никак вывести в читабельном виде. Как мне это сделать?

// Контроллер
<?php
namespace app\controllers;

use Yii;
use behnampro\yii2ssh\Yii2ssh;


class SsmpController extends AppController
{
      public function actionKey(){

        $yii_ssh = new Yii2ssh();
        $host = "10.26.1.111"; // сервер
        $auth['username'] = 'root'; // логин
        $auth['password'] = 'home'; // пароль
        $session = $yii_ssh->connect($host, $auth); // подключаемся

        if($session){
            $line = $yii_ssh->run_ssh('ls -al');
        }
        else{
            $line = 'Сервер не доступен, попробуйте позже';
        }
        return $this->render('index',compact('line'));
    }
}

Получаю вот такую строку
итого 39516 dr-xr-x---. 40 root root 8192 июл 9 14:26 . dr-xr-xr-x. 18 root root 275 июн 4 12:45 .. drwxr-xr-x. 3 root root 22 апр 20 2018 .1C drwxr-xr-x. 3 root root 16 апр 20 2018 .1cv8 -rw-r--r--. 1 root root 4815 июн 5 08:39 3821288snils.pdf.sgn -rw-------. 1 root root 1919 окт 16 2017 anaconda-ks.cfg -rw-------. 1 root root 39132 июл 9 15:44 .bash_history -rw-r--r--. 1 root root 18 дек 29 2013 .bash_logout -rw-r--r--. 1 root root 176 дек 29 2013 .bash_profile -rw-r--r--. 1 root root 176 дек 29 2013 .bashrc drwx------. 18 root root 4096 фев 20 15:52 .cache -rw-r--r--. 1 root root 161 фев 1 20:37 composer.json drwx------. 31 root root 4096 фев 15 16:11 .config -rw-r--r--. 1 root root 100 дек 29 2013 .cshrc drwx------. 3 root root 25 сен 18 2017 .dbus drwx------. 2 root root 55 авг 17 2018 .elinks -rw-------. 1 root root 16 сен 17 2017 .esd_auth drwx------. 3 root root 18 ноя 4 2017 .gnome drwx------. 3 root root 50 мар 13 20:20 .gnupg drwxr-xr-x. 2 root root 33 сен 18 2017 .gstreamer-0.10 -rw-r--r--. 1 root root 113 мар 8 2011 .gtkrc-2.0-kde4 drwx------. 2 root root 6 апр 25 2018 .gvfs -rwxr-xr-x. 1 root root 90456 фев 6 2004 hasplm -rw-r--r--. 1 root root 81712 апр 24 2018 hasplm_linux_8.30.tgz -rw-r--r--. 1 root root 29166 ноя 17 2004 hasplm-redhat-8.30-1.i386.rpm -rw-r--r--. 1 root root 28674 ноя 17 2004 hasplm-suse-8.30-1.i386.rpm drwxr-xr-x. 2 root root 63 апр 24 2018 HDD_RPM_RedHat_i386 -rw-r--r--. 1 root root 53832 апр 24 2018 HDD_RPM_RedHat_i386.tar.gz drwxr-xr-x. 3 root root 143 апр 24 2018 her -rw-r--r--. 1 root root 9684 фев 5 17:36 \home\converter\tmp2.html drwxr-xr-x. 2 root root 6 дек 17 2018 .hplip -rw-------. 1 root root 15338 апр 16 13:28 .ICEauthority drwxr-xr-x. 2 root root 6 сен 18 2017 .icons drwxr-xr-x. 3 root root 143 апр 25 2018 InfoBase drwxr-xr-x. 5 root root 274 апр 26 2018 InfoBase1 -rw-r--r--. 1 root root 1967 сен 16 2017 initial-setup-ks.cfg drwxr-xr-x. 4 root root 37 ноя 4 2017 .java -rw-r--r--. 1 root root 0 май 8 08:17 jdk-8u191-linux-x64.tar.gz drwx------. 4 root root 140 сен 18 2017 .kde drwxr-xr-x. 3 root root 25 июл 6 2018 linux-amd64 -rw-r--r--. 1 root root 32044 июл 6 2018 linux-amd64.tgz drwx------. 3 root root 19 окт 16 2017 .local drwxr-xr-x. 5 root root 66 фев 11 14:05 .mozilla drwxr-xr-x. 6 root root 4096 апр 16 13:28 .nx drwxr-----. 3 root root 19 сен 17 2017 .pki drwxr-xr-x. 4 root root 34 ноя 4 2017 .PyCharm2017.2 -rw-r--r--. 1 root root 2760 ноя 25 2004 readme.txt drwxr-xr-x. 4 root root 34 фев 13 16:49 rpmbuild -rw-r--r--. 1 root root 7402 фев 4 12:36 snils.pdf -rw-r--r--. 1 root root 4798 июн 13 11:30 snils.pdf.sgn drwx------. 2 root root 25 сен 17 2017 .ssh -rw-r--r--. 1 root root 52633 апр 25 07:15 suds.log -rwxr-xr-x. 1 root root 36749737 июн 5 2018 suds_old.log -rw-r--r--. 1 root root 129 дек 29 2013 .tcshrc drwxr-xr-x. 2 root root 6 сен 18 2017 .themes drwxr-xr-x. 3 root root 42 фев 1 20:37 vendor -rw-------. 1 root root 1241 сен 19 2017 .viminfo drwxr-xr-x. 2 root root 23 сен 16 2017 .vista-med drwxr-xr-x. 3 root root 57 сен 18 2017 .x2go -rw-------. 1 root root 69 авг 15 2018 .xauth0bBCu9 -rw-------. 1 root root 69 авг 29 2018 .xauth1BaMcJ -rw-------. 1 root root 69 апр 15 21:00 .xauth2FcMWH -rw-------. 1 root root 69 июл 8 14:37 .xauth2Q9Jcq -rw-------. 1 root root 69 сен 19 2017 .xauth6SJxAJ -rw-------. 1 root root 69 окт 27 2017 .xauthbHWqiB -rw-------. 1 root root 69 авг 10 2018 .xauthgaalzF -rw-------. 1 root root 69 май 15 2018 .xauthGNaSwl -rw-------. 1 root root 69 июл 3 16:31 .xauthLiKBMe -rw-------. 1 root root 3584 июл 9 14:26 .Xauthority -rw-------. 1 root root

если обернуть в тег <pre>, то выходит более менее читабельно, но совсем не отредактировать текст, я имею ввиду в теги не обернуть, и классы не добавить, как распарсить ответ от сервера? Например преобразовать ответ в массив
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
@Mysterion
$lines = explode("\n", $line);
И будет массив из строку. Конкретно ls -la, например, я так и парсил.
Остальные команды надо смотреть отдельно. Но если достаточно построчно, то так же, как и выше.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@polar_yogi
ls -l не лучший источник для парсинга.
К примеру, tree умеет возвращать данный в json:
tree -J -L 1
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы