#parsing #cmd #output #telnet
Вопрос:
Я играю с небольшим проектом, который подключается к удаленному устройству через php telnet, и я хочу проанализировать результат/вывод cmd на php, чтобы я мог ПЕЧАТАТЬ на html или php конкретные данные из необработанного ответа
Я использую класс phptelnet.
Поэтому для подключения к удаленному устройству я использую следующий код ниже:
/*------------ Init conection with device -------------*/ $telnet = new PHPTelnet(); $telnet-gt;show_connect_error=0; $result = $telnet-gt;Connect($ip, $port_telnet, $user, $pass, false); // sends first cmd $cmd0[0] = "show sys mem"; $telnet-gt;DoCommand($cmd0, $result); echo $result;
Это приводит к следующему результату
show sys mem MemTotal: 497252 kB MemFree: 352012 kB Buffers: 0 kB Cached: 52396 kB SwapCached: 0 kB Active: 59612 kB Inactive: 49548 kB Active(anon): 56764 kB Inactive(anon): 0 kB Active(file): 2848 kB Inactive(file): 49548 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 0 kB Writeback: 0 kB AnonPages: 56760 kB Mapped: 14740 kB Shmem: 0 kB Slab: 3808 kB SReclaimable: 712 kB SUnreclaim: 3096 kB KernelStack: 880 kB PageTables: 484 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 248624 kB Committed_AS: 326908 kB VmallocTotal: 516096 kB VmallocUsed: 6352 kB VmallocChunk: 509180 kB
Теперь я немного теряюсь в том, как это проанализировать, чтобы я мог отфильтровать определенные данные из ответа cmd и вызвать эти конкретные данные, возможно, в другом cmd или отобразить их в форме в html или php
Например, сначала проанализируйте его как
MemTotal: 497252 kB MemFree: 352012 kB Buffers: 0 kB Cached: 52396 kB SwapCached: 0 kB Active: 59612 kB Inactive: 49548 kB Active(anon): 56764 kB Inactive(anon): 0 kB Active(file): 2848 kB Inactive(file): 49548 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 0 kB Writeback: 0 kB AnonPages: 56760 kB Mapped: 14740 kB Shmem: 0 kB Slab: 3808 kB SReclaimable: 712 kB SUnreclaim: 3096 kB KernelStack: 880 kB PageTables: 484 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 248624 kB Committed_AS: 326908 kB VmallocTotal: 516096 kB VmallocUsed: 6352 kB VmallocChunk: 509180 kB
Так , например, если я хочу напечатать только вывод MemTotal
в форме в html, просто вызвав конкретный результат, например
$mem_total = $result['MemTotal'];
Но это не работает, просто дает мне пустой результат.
У кого-нибудь есть какие-либо идеи о том, как сначала правильно проанализировать полный ответ cmd и разделить все ответы на данные по отдельности?