Tabelle mit SSH2

seem

New Member
Hallo Leute,
wende mich heute zum erstenmal hier an euch mit nem Kleinen problem.

Ich Programmiere seit Gestern mit PHP SSH2 .
Funktioniert soweit gut.
Doch wenn ich jetzt folgenden Befehel habe:
$connection=root_connect($row->root);
$stream1 = ssh2_exec($connection, "vzctl exec ".$row->vid." cat /proc/user_beancounters");
stream_set_blocking($stream1, true);
echo''.nl2br(stream_get_contents($stream1)).'

kommt folgendes ZurücK:
210: kmemsize 652343 3596261 67108864 73819750 0
lockedpages 0 419 2048 2048 0
privvmpages 9057 131080 131072 131072 420
shmpages 0 992 91750 91750 0
dummy 0 0 0 0 0
numproc 9 73 200 200 0
physpages 981 13255 131072 131072 0
vmguarpages 0 0 131072 131072 0
oomguarpages 981 13255 131072 131072 0
numtcpsock 3 7 800 800 0
numflock 1 7 5000 5000 0
numpty 0 2 15 15 0
numsiginfo 0 36 400 400 0
tcpsndbuf 52512 63592 8000000 16000000 0
tcprcvbuf 49152 2582856 8000000 16000000 0
othersockbuf 2328 20576 8000000 16000000 0
dgramrcvbuf 0 8472 8000000 16000000 0
numothersock 1 14 800 800 0
dcachesize 0 0 46976205 46976205 0
numfile 200 1258 10000 10000 0
dummy 0 0 0 0 0
dummy 0 0 0 0 0
dummy 0 0 0 0 0
numiptent 20 20 200 200 0

Sprich nichts geordnet.
Ist es möglich das in Form einer Tabelle dagestelt zu kriegen?

lg Steve
 
In jeder guten Programmiersprache gibt es Funktionen, die dir Strings an bestimmten Zeichen in Arrays zerlegen. Aus diesen Arrays eine Tabelle in HTML zu bauen, sollte trivial sein.

Auch wenn PHP nicht zu den guten Programmiersprachen zählt, findest du entsprechende String-Funktionen.

EDIT: Oder noch viel trivialer: Ersetzen mit regexp
 
Last edited by a moderator:
Gib es einfach einmal ohne nl2br(), dafür in <pre> Tags aus. Vielleicht reicht dir das Ergebnis schon? ;)

EDIT: htmlentities() nicht vergessen.


MfG Christian
 
Code:
$stream1 = ssh2_exec($connection, "vzctl exec ".$row->vid." cat /proc/user_beancounters");

Hat nicht wirklich was mit dem Problem zu tun, aber als kleine Anmerkung nebenbei:
Hol dir die Werte aus der "globalen" /proc/user_beancounters vom Hostsystem und nicht aus der VE mit vzctl exec. Wenn die VEs an ihre Limits stößt, bspw. procnum, dann wirst du den cat dadrin nicht ausgeführt bekommen. ;)
 
Das Funktioniert doch glaubig.

Also der befehl.
2-3 Test haben keine Fehler gezeigt.
So neben dem Problem mit der ansicht frage ich mich noch wie ich bei OpenVZ die Statistiken hinkriege , also Speicher etc.

Das Problem habe ich "grobe" durch str_replace gelösst.
Einfach die Leerzeichen durch &nbsp; ersetzt und fertig.
Passt zwar immernoch nicht aber naja.
Euere methoden verstehe ich nicht ganz.
 
Das Problem habe ich "grobe" durch str_replace gelösst.
Einfach die Leerzeichen durch &nbsp; ersetzt und fertig.
Passt zwar immernoch nicht aber naja.
Euere methoden verstehe ich nicht ganz.
Genau dafür gibt es <pre>, wie bereits in meinem letzten Beitrag erwähnt ;)


MfG Christian
 
Alternativ
PHP:
$array = array();
$lines = explode("\n",$counters);
foreach($lines as $line) {
   $theline = array();
   $line = trim($line);
   if(empty($line)) continue;
   $parts = explode(" ",$line);
   foreach($parts as $part) {
       if(empty($part)) continue;
       $theline[] = $part;
   }
   $lines[] = $theline;
}

Danach kannst du das ganze dann einfach ausgeben:
PHP:
<table border="0" cellpadding="0" cellspacing="3">
<? foreach($lines as $line) { ?>
<tr>
<? foreach($line as $part) { ?>
<td><?=$part;?></td>
<? } ?>
</tr>
<? } ?>
</table>
 
Das Funktioniert doch glaubig.
Also der befehl.

Lies mein Beitrag bitte vollständig. Der Befehl funktioniert nur solange, wie die VE nicht an ihre Ressourcenlimits stößt.
Aber war ja auch nur ein Vorschlag um zukünftigen Problemen aus dem Weg zu gehen. ;)
 
Back
Top