Problem mit Addition
ThomasNT4
- php
Halloechen ihr da draussen
Hab hier folgende Problem
<?php
$handle = popen("grep 'Sent [0-9]* bytes' messages | awk '{print $7+$10};'", "r");
$total = 0;
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
echo $buffer;
$total = 0;
$total1 = $total += $buffer;
}
echo $total1;
?>
Es werden aus der Datei messages Werte ausgelesen die wie folgt aussehen
Mar 14 15:58:23 firewall pppd[8130]: Sent 21032462 bytes, received 62718005 bytes.
Mar 16 07:56:23 firewall pppd[13071]: Sent 98288270 bytes, received 131328276 bytes.
Mar 14 16:00:20 firewall pppd[8130]: Sent 2592 bytes, received 2089 bytes.
als Ausgabe bekomme ich aber nicht die Gesamtsumme sondern sondern immer nur die in $7 + $10 addierte Summe des sent + received Wertes.
Ich hatte das schonmal gepostet aber irgentwie konnte mir dabei nur teilweise geholfen werden.
Das Ergebnis was nun beim ogigen Script raus kommt lautet :
83750467 229616546 4681 0
Wäre nett wenn jemand eine Lösung haette..
Hallo ThomasNT4
$total = 0;
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
echo $buffer;
$total = 0;
Warum setzt Du bei jedem Schleifendurchlauf $total auf 0 zurück?
Ist das Absicht?
Sauber strukturierter Code ist leichter lesbar und weniger fehlerträchtig.
$total1 = $total += $buffer;
Zur Sicherstellung der Reihenfolge der Zuweisungen empfiehlt sich das Setzen von Klammern. Es macht den Code lesbarer auch wenn die Klammern nicht notwendig sind.
}
echo $total1;
Freundliche Grüsse,
Vinzenz
Hat sich erledigt habs hinbekommen
<?php
$handle = popen("grep 'Sent [0-9]* bytes' messages | awk '{print $7+$10};'", "r");
$total = 0;
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
$total += $buffer/1024000;
}
echo $total;
?>
Grueße Thomas