linux "free" in php in arrays splitten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • linux "free" in php in arrays splitten

    Hallo,
    ich hab ein problem und zwar habe ich den inhalt von dem shell befehl "free" in einem array[0-3] wobei in jedem feld eine zeile steht.
    das ganze möchte ich jetzt allerdings exploden, nur geht das nicht so einfach, da die anzahl der leerzeichen variieren. Wie macht man das jetzt am besten?

    Beispiel "free":
    Code:
                 total       used       free     shared    buffers     cached
    Mem:       1036164    1018224      17940          0      24812     421076
    -/+ buffers/cache:     572336     463828
    Swap:      1052248          0    1052248
    mein code bis jetzt:
    PHP-Code:
            $what safe_exec('free');
            for(
    $i 0$i <= 3$i++){
                    
    $result explode(" "$what[0]);
                    for(
    $s 0$s <= count($result); $s++){
                            if(
    strlen($result[$s]) == 0){           //<-----
                                    
    unset($result[$s]);             //soll die leeren array felder löschen?! geht nit wirklich?
                            
    }                                       //----->
                    
    }
                    
    var_dump($result);
            } 
    kann mir jemand dabei zur seite stehen?

  • #2
    bitte code umbrechen!

    sind das nicht einfache tabulatoren?

    Kommentar


    • #3
      nein sind es leider nicht...
      aber ich hab eben gerade noch mal a weng rumgepastat und hab jetzt folgendes hinbekommen mit folgender ausgabe:
      Code:
      PHP-Code:
              $zeile = array();
              
      $what safe_exec('free');
              for(
      $i 0$i <= 3$i++){
       
                     for(
      $g 0$g <= 10$g++){

                              
      $what[$i] = str_replace("  "" "$what[$i]);

                      }

                      
      $zeile[$i] = explode(" "$what[$i]);

                      
      var_dump($zeile[$i]);
              } 
      Ausgabe:
      Code:
      debian:/etc/cron.d# /usr/bin/php4 /var/test.php
      array(7) {
        [0]=>
        string(0) ""
        [1]=>
        string(5) "total"
        [2]=>
        string(4) "used"
        [3]=>
        string(4) "free"
        [4]=>
        string(6) "shared"
        [5]=>
        string(7) "buffers"
        [6]=>
        string(6) "cached"
      }
      array(7) {
        [0]=>
        string(4) "Mem:"
        [1]=>
        string(5) "61492"
        [2]=>
        string(5) "60020"
        [3]=>
        string(4) "1472"
        [4]=>
        string(1) "0"
        [5]=>
        string(4) "5404"
        [6]=>
        string(5) "14100"
      }
      array(4) {
        [0]=>
        string(3) "-/+"
        [1]=>
        string(14) "buffers/cache:"
        [2]=>
        string(5) "40516"
        [3]=>
        string(5) "20976"
      }
      array(4) {
        [0]=>
        string(5) "Swap:"
        [1]=>
        string(6) "184708"
        [2]=>
        string(5) "21440"
        [3]=>
        string(6) "163268"
      }
      debian:/etc/cron.d#
      MfG
      Nascar

      Kommentar


      • #4
        PHP-Code:
        $what[$i] = preg_replace('/\\s{2,}/''\\s'$what[$i]); 
        Solle flexibler sein.

        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Es sind Leerzeichen.

          Kommentar


          • #6
            überredet. in dem fall kann man wohl nach dem doppelpunkt nach beliebier anzahl von leerzeichen exploden (und evtl. trim() anwenden), nehme ich an?

            Kommentar

            Lädt...
            X