S
S
Sergey Belyakov2019-07-09 16:46:59
Yii
Sergey Belyakov, 2019-07-09 16:46:59

How to parse response from linux?

Good afternoon! I need to execute a command on the server from under php on yii2, and I execute it using a third-party Yii2ssh component, but I get the response as a string, and I can’t display it in a readable form. How can I do it?

// Контроллер
<?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'));
    }
}

I get this 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

if you wrap it in a tag , it comes out more or less readable, but you don’t edit the text at all, I mean don’t wrap it in tags, and don’t add classes, how to parse the response from the server? For example convert the response to an array <pre>

Answer the question

In order to leave comments, you need to log in

2 answer(s)
M
Mysterion, 2019-07-09
@grey_18_08

$lines = explode("\n", $line);
And there will be an array of a string. Specifically, ls -la, for example, I parsed like that.
The rest of the teams should be looked at separately. But if it is enough line by line, then the same as above.

P
polar_yogi, 2019-07-09
@polar_yogi

ls -l is not the best source for parsing.
For example, tree can return given data in json:
tree -J -L 1

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question