ThomasNT4: Problem mit Addition

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..

  1. 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

    1. 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