Michael W.: 2 schleifen ineinander

hallo erneut,

das suchscript das wir jetzt erstellt haben für einzelne suchen soll jetzt mehrere dateien gleichzeitig suchen:

hier das einzelen script:

<?php
$datei= file('datei1.log');
print "<I><br> <b>Server: <U>".$server."</b></I></U><br><br><br><hr>";
$a = "USER=";
$b = " Processor: ";
$c = " CPU Clock Speed: ";
$d = " Extended Memory: ";
$e = "Fixed Disk";
for($i=0;$i<count($datei);$i++)
{
if(eregi($b,$datei[$i])) $array[0][] = $datei[$i];
if(eregi($a,$datei[$i])) $array[1][] = $datei[$i];
if(eregi($e,$datei[$i])) $array[4][] = $datei[$i];
if(eregi($d,$datei[$i])) $array[3][] = $datei[$i];
if(eregi($c,$datei[$i])) $array[2][] = $datei[$i];
}
reset($array);
while(list($key,$val)=each($array[0])) {
print "<b>";
echo $array[1][$key];
print "</b><br><br>";
echo $val;
print "<br>";
echo $array[2][$key];
print "<br>";
echo $array[3][$key];
print "<br>";
echo $array[4][$key];
print "<br><hr>";
}
?>

und ich möchte das script nicht nur für die datei1.log anwenden sondern auch für datei2-... .log.
ich hatte mir gedacht wieder mit arrays zu arbeiten. Das man ein array anfängt und dort alle dateien die geprüft werden sollen in dem array "Dateien[]" definiert werden.
denn es soll pro datei ein absatz und eine ausgabe "Server: ".$datei[]; geben

das dass in etwa am ende nicht so aussieht:

USER=genocash

SERVER=f-fra01
Processor: Intel Pentium-167
CPU Clock Speed: 167 MHz
Extended Memory: 31 MB (31 MB Free)
C: 9717 MB 1130 MB 8587 MB Fixed Disk
USER=glockka
----------
SERVER=f-fra01
Processor: Intel CeleronA-334
CPU Clock Speed: 334 MHz
Extended Memory: 95 MB (64 MB Free)
C: 19530 MB 960 MB 18 GB RWZ Fixed Disk
USER=goettejo
----------
SERVER=f-fra11
Processor: AMD Athlon(tm) (Thunderbird)-1043
CPU Clock Speed: 1043 MHz
Extended Memory: 127 MB (64 MB Free)
C: 1220 MB 271 MB 949 MB Fixed Disk
USER=haertika
----------
SERVER=f-fra11
Processor: AMD Duron(tm)-782
CPU Clock Speed: 782 MHz
Extended Memory: 63 MB (63 MB Free)
C: 4102 MB 741 MB 3361 MB RWZ Fixed Disk

sondern so:
-------------
-------------
SERVER=f-fra01

USER=genocash

Processor: Intel Pentium-167
CPU Clock Speed: 167 MHz
Extended Memory: 31 MB (31 MB Free)
C: 9717 MB 1130 MB 8587 MB Fixed Disk
------------
USER=glockka

Processor: Intel CeleronA-334
CPU Clock Speed: 334 MHz
Extended Memory: 95 MB (64 MB Free)
C: 19530 MB 960 MB 18 GB RWZ Fixed Disk

--------------
--------------
SERVER=f-fra11

USER=goettejo

Processor: AMD Athlon(tm) (Thunderbird)-1043
CPU Clock Speed: 1043 MHz
Extended Memory: 127 MB (64 MB Free)
C: 1220 MB 271 MB 949 MB Fixed Disk
-------------
USER=haertika

Processor: AMD Duron(tm)-782
CPU Clock Speed: 782 MHz
Extended Memory: 63 MB (63 MB Free)
C: 4102 MB 741 MB 3361 MB RWZ Fixed Disk

das würde bedeuten, dass man 2 schleifen ineinander verbindet.
geht das so überhaupt ?

wers immer noch nicht versteht - ich schreibe das script jetzt mal so hin wie ich das meine - eben ausführlich:

<?php
$datei= file('datei1.log');
print "<I><br> <b>Server: <U>".$server."</b></I></U><br><br><br><hr>";
$a = "USER=";
$b = " Processor: ";
$c = " CPU Clock Speed: ";
$d = " Extended Memory: ";
$e = "Fixed Disk";
for($i=0;$i<count($datei);$i++)
{
if(eregi($b,$datei[$i])) $array[0][] = $datei[$i];
if(eregi($a,$datei[$i])) $array[1][] = $datei[$i];
if(eregi($e,$datei[$i])) $array[4][] = $datei[$i];
if(eregi($d,$datei[$i])) $array[3][] = $datei[$i];
if(eregi($c,$datei[$i])) $array[2][] = $datei[$i];
}
reset($array);
while(list($key,$val)=each($array[0])) {
print "<b>";
echo $array[1][$key];
print "</b><br><br>";
echo $val;
print "<br>";
echo $array[2][$key];
print "<br>";
echo $array[3][$key];
print "<br>";
echo $array[4][$key];
print "<br><hr>";
}
$datei= file('datei2log');
print "<I><br> <b>Server: <U>".$server."</b></I></U><br><br><br><hr>";
$a = "USER=";
$b = " Processor: ";
$c = " CPU Clock Speed: ";
$d = " Extended Memory: ";
$e = "Fixed Disk";
for($i=0;$i<count($datei);$i++)
{
if(eregi($b,$datei[$i])) $array[0][] = $datei[$i];
if(eregi($a,$datei[$i])) $array[1][] = $datei[$i];
if(eregi($e,$datei[$i])) $array[4][] = $datei[$i];
if(eregi($d,$datei[$i])) $array[3][] = $datei[$i];
if(eregi($c,$datei[$i])) $array[2][] = $datei[$i];
}
reset($array);
while(list($key,$val)=each($array[0])) {
print "<b>";
echo $array[1][$key];
print "</b><br><br>";
echo $val;
print "<br>";
echo $array[2][$key];
print "<br>";
echo $array[3][$key];
print "<br>";
echo $array[4][$key];
print "<br><hr>";
}
$datei= file('datei3og');
print "<I><br> <b>Server: <U>".$server."</b></I></U><br><br><br><hr>";
$a = "USER=";
$b = " Processor: ";
$c = " CPU Clock Speed: ";
$d = " Extended Memory: ";
$e = "Fixed Disk";
for($i=0;$i<count($datei);$i++)
{
if(eregi($b,$datei[$i])) $array[0][] = $datei[$i];
if(eregi($a,$datei[$i])) $array[1][] = $datei[$i];
if(eregi($e,$datei[$i])) $array[4][] = $datei[$i];
if(eregi($d,$datei[$i])) $array[3][] = $datei[$i];
if(eregi($c,$datei[$i])) $array[2][] = $datei[$i];
}
reset($array);
while(list($key,$val)=each($array[0])) {
print "<b>";
echo $array[1][$key];
print "</b><br><br>";
echo $val;
print "<br>";
echo $array[2][$key];
print "<br>";
echo $array[3][$key];
print "<br>";
echo $array[4][$key];
print "<br><hr>";
}
usw
?>

und das kann man doch bestimmt kürzen, oder ?

Danke

  1. in jav geht das z.b. so:

    for (bla=bla;bla<bla;bla++)
    {Server zeugs
      for (bla=bla;bla<bla;bla++)
       { Rechner zeugs
       }
    }

    is eigentlich logisch

    er geht in die 1. scheife dh. findet server 1 und geht durch die 2.schleife dort alles durch,
    dann geht er wieder in schleife 1 usw. usf.

  2. das würde bedeuten, dass man 2 schleifen ineinander verbindet.
    geht das so überhaupt ?

    wers immer noch nicht versteht - ich schreibe das script jetzt mal so hin wie ich das meine - eben ausführlich:

    <?php
    $datei= file('datei1.log');
    print "<I><br> <b>Server: <U>".$server."</b></I></U><br><br><br><hr>";
    $a = "USER=";
    $b = " Processor: ";
    $c = " CPU Clock Speed: ";
    $d = " Extended Memory: ";
    $e = "Fixed Disk";
    for($i=0;$i<count($datei);$i++)
    {
    if(eregi($b,$datei[$i])) $array[0][] = $datei[$i];
    if(eregi($a,$datei[$i])) $array[1][] = $datei[$i];
    if(eregi($e,$datei[$i])) $array[4][] = $datei[$i];
    if(eregi($d,$datei[$i])) $array[3][] = $datei[$i];
    if(eregi($c,$datei[$i])) $array[2][] = $datei[$i];
    }
    reset($array);
    while(list($key,$val)=each($array[0])) {
    print "<b>";
    echo $array[1][$key];
    print "</b><br><br>";
    echo $val;
    print "<br>";
    echo $array[2][$key];
    print "<br>";
    echo $array[3][$key];
    print "<br>";
    echo $array[4][$key];
    print "<br><hr>";
    }
    $datei= file('datei2log');
    print "<I><br> <b>Server: <U>".$server."</b></I></U><br><br><br><hr>";
    $a = "USER=";
    $b = " Processor: ";
    $c = " CPU Clock Speed: ";
    $d = " Extended Memory: ";
    $e = "Fixed Disk";
    for($i=0;$i<count($datei);$i++)
    {
    if(eregi($b,$datei[$i])) $array[0][] = $datei[$i];
    if(eregi($a,$datei[$i])) $array[1][] = $datei[$i];
    if(eregi($e,$datei[$i])) $array[4][] = $datei[$i];
    if(eregi($d,$datei[$i])) $array[3][] = $datei[$i];
    if(eregi($c,$datei[$i])) $array[2][] = $datei[$i];
    }
    reset($array);
    while(list($key,$val)=each($array[0])) {
    print "<b>";
    echo $array[1][$key];
    print "</b><br><br>";
    echo $val;
    print "<br>";
    echo $array[2][$key];
    print "<br>";
    echo $array[3][$key];
    print "<br>";
    echo $array[4][$key];
    print "<br><hr>";
    }
    $datei= file('datei3og');
    print "<I><br> <b>Server: <U>".$server."</b></I></U><br><br><br><hr>";
    $a = "USER=";
    $b = " Processor: ";
    $c = " CPU Clock Speed: ";
    $d = " Extended Memory: ";
    $e = "Fixed Disk";
    for($i=0;$i<count($datei);$i++)
    {
    if(eregi($b,$datei[$i])) $array[0][] = $datei[$i];
    if(eregi($a,$datei[$i])) $array[1][] = $datei[$i];
    if(eregi($e,$datei[$i])) $array[4][] = $datei[$i];
    if(eregi($d,$datei[$i])) $array[3][] = $datei[$i];
    if(eregi($c,$datei[$i])) $array[2][] = $datei[$i];
    }
    reset($array);
    while(list($key,$val)=each($array[0])) {
    print "<b>";
    echo $array[1][$key];
    print "</b><br><br>";
    echo $val;
    print "<br>";
    echo $array[2][$key];
    print "<br>";
    echo $array[3][$key];
    print "<br>";
    echo $array[4][$key];
    print "<br><hr>";
    }
    usw
    ?>

    und das kann man doch bestimmt kürzen, oder ?

    n'abend.

    ich glaub, das haut hin. versuch einmal:

    $files = array ("datei1.log", "datei2.log", "datei3.log");
    foreach($files as $handle)
    {
      $datei = file($handle);
      print "<I><br><b>Server:<U>".$handle."</b></I></U><br><hr>";

    //der ganze rest des scriptes kommt hier unverändert hin.

    print "<br><br>"; //der absatz nach einer datei.
    }

    hab ich jetzt richtig verstanden, dass der dateiname und der servername gleich sind ? oder woher kommt das $server ?

    grüssle
    bjoern

    1. ja vollkommen richtig !!
      Danke
      Aber eins wär da noch:

      kann ich jetzt die dateien die ich von hand eintragen muss, sprich datei1.log, datei2.log, datei3.log ..., durch einen weiteren trick ersetzen ?
      ich hatte da an auslesen des ordnerinhaltes gedacht:

      es gibt den ordner server wo sich die dateien alle befinden:
      server/datei1.log
      server/datei2.log ...

      kann ich den ordner auf seine inhalte prüfen, auslesen, und in das array einfügen ?

      denn das sind ca. 300 dateien
      vieleicht sollte ich noch erwähnen das die datein nicht datei1.log sonder f-fra01 oder f-fra11 oder f-gla01 heißen.

      Danke

      1. ja vollkommen richtig !!
        Danke
        Aber eins wär da noch:

        kann ich jetzt die dateien die ich von hand eintragen muss, sprich datei1.log, datei2.log, datei3.log ..., durch einen weiteren trick ersetzen ?
        ich hatte da an auslesen des ordnerinhaltes gedacht:

        es gibt den ordner server wo sich die dateien alle befinden:
        server/datei1.log
        server/datei2.log ...

        kann ich den ordner auf seine inhalte prüfen, auslesen, und in das array einfügen ?

        denn das sind ca. 300 dateien
        vieleicht sollte ich noch erwähnen das die datein nicht datei1.log sonder f-fra01 oder f-fra11 oder f-gla01 heißen.

        morche,

        das mit dem verzeichnis auslesen geht natürlich.
        beim array-aufbau machst du einfach:

        $dir=opendir ('./server');
        while ($file = readdir ($dir)){
          if (is_file($file))
            $dateien[] = $file;
        }
        closedir($dir);

        dann stehen im array $dateien alle dateien des verzeichnis ./server . wie die dateien heissen, spielt dabei keine rolle.

        grüssle  - vom füssle des uetliberg
        bjoern

        1. so gehts schon mal nicht:

          <?php
          $dir=opendir ('./server');
          while ($file = readdir ($dir)){
            if (is_file($file))
              $dateien[] = $files;
          }
          closedir($dir);
          foreach($files as $handle)
          {
          $datei = file($handle);
          print "<br><hr><I><b>Server:<U>".$handle."</b></I></U><hr><br>";
          $a = "USER=";
          $b = " Processor: ";
          $c = " CPU Clock Speed: ";
          $d = " Extended Memory: ";
          $e = "Fixed Disk";
          for($i=0;$i<count($datei);$i++)
          {
          if(eregi($b,$datei[$i])) $array[0][] = $datei[$i];
          if(eregi($a,$datei[$i])) $array[1][] = $datei[$i];
          if(eregi($e,$datei[$i])) $array[4][] = $datei[$i];
          if(eregi($d,$datei[$i])) $array[3][] = $datei[$i];
          if(eregi($c,$datei[$i])) $array[2][] = $datei[$i];
          }
          reset($array);
          while(list($key,$val)=each($array[0])) {
          print "<b>";
          echo $array[1][$key];
          print "</b><br><br>";
          echo $val;
          print "<br>";
          echo $array[2][$key];
          print "<br>";
          echo $array[3][$key];
          print "<br>";
          echo $array[4][$key];
          print "<br><hr>";
          }
          print "<br><br>";
          }
          ?>

          warum ?

          Danke

          1. hi,

            so gehts schon mal nicht:

            das ist doch klar. den variablennamen beim verzeichnisdurchsuchen musst du noch an den rest des skriptes anpassen.

            <?php
            $dir=opendir ('./server');
            while ($file = readdir ($dir)){
              if (is_file($file))
                $dateien[] = $files;

            $files[] = $files; //statt der zeile oben dran.

            }
            closedir($dir);
            foreach($files as $handle)

            //es wird ja $files als array mit den files erwartet.

            {
            $datei = file($handle);
            print "<br><hr><I><b>Server:<U>".$handle."</b></I></U><hr><br>";
            $a = "USER=";
            $b = " Processor: ";
            $c = " CPU Clock Speed: ";
            $d = " Extended Memory: ";
            $e = "Fixed Disk";
            for($i=0;$i<count($datei);$i++)
            {
            if(eregi($b,$datei[$i])) $array[0][] = $datei[$i];
            if(eregi($a,$datei[$i])) $array[1][] = $datei[$i];
            if(eregi($e,$datei[$i])) $array[4][] = $datei[$i];
            if(eregi($d,$datei[$i])) $array[3][] = $datei[$i];
            if(eregi($c,$datei[$i])) $array[2][] = $datei[$i];
            }
            reset($array);
            while(list($key,$val)=each($array[0])) {
            print "<b>";
            echo $array[1][$key];
            print "</b><br><br>";
            echo $val;
            print "<br>";
            echo $array[2][$key];
            print "<br>";
            echo $array[3][$key];
            print "<br>";
            echo $array[4][$key];
            print "<br><hr>";
            }
            print "<br><br>";
            }
            ?>

            warum ?

            Danke

            bitte schön.

            bjoern

            1. hä ?

              wie denn jetzt ? so

              <?php
              $dir=opendir ('./server');
              while ($file = readdir ($dir)){
                if (is_file($file))
                  $files[] = $files;
              }
              closedir($dir);
              foreach($files as $handle)
              {
              $datei = file($handle);
              print "<br><hr><I><b>Server:<U>".$handle."</b></I></U><hr><br>";
              $a = "USER=";
              $b = " Processor: ";
              $c = " CPU Clock Speed: "; ...

              ?? so klappt es nicht ...

              ich blicke hier nicht mehr durch:

              $dir=opendir ('./server');
              while ($file = readdir ($dir)){
                if (is_file($file))
                  $files[] = $files;
              }
              closedir($dir);
              foreach($files as $handle)
              {
              $datei = file($handle);

              !!!!!!!!!!!???????????!!!!!!!!!!!!

              Danke

              1. hä ?

                wie denn jetzt ? so

                ?? so klappt es nicht ...

                ich blicke hier nicht mehr durch:

                $dir=opendir ('./server');
                while ($file = readdir ($dir)){
                  if (is_file($file))
                    $files[] = $files;

                $files[] = $file;

                //ich hatte vorher die zeile einfach von dir kopiert und nur den anfang angepasst. dabei hab ich nicht gesehen, dass sich da bei dir ein kopierfehler eingeschlichen hatte.
                //es muss natürlich $file hinten heissen. $file ist die gerade angeschaute datei. $files ist das array mit allen dateien, welches du nachher brauchst.

                }
                closedir($dir);
                foreach($files as $handle)
                {
                $datei = file($handle);

                !!!!!!!!!!!???????????!!!!!!!!!!!!

                für den durchblick:

                das verzeichnis server wird geöffnet.
                über alles im verzeichnis wird eine schlaufe gemacht.
                  das gefundene im verzeichnis trägt den namen $file.
                  bei jedem durchgang der schlaufe hat $file einen anderen wert.
                  wenn eine datei (also kein verzeichnis) gefunden wurde,
                    wird sie dem array $files hinzugefügt.
                fertig schlaufe. das verzeichnis wird geschlossen.

                nächste schlaufe, für alle dateien im array $files.
                  in der schlaufe heisst die datei $handle.
                  hier kommt die gesamte überprüfung und ausgabe.
                schlaufe schliessen.
                fertitsch !

                ich hoffe, ich konnte den durchblick etwas erleichtern.

                grüssle
                bjoern

                1. nein.

                  Warning: Invalid argument supplied for foreach() in /usr/local/httpd/htdocs/rwzadm/menu/support/hardware/rwz-check.php on line 8

                  es stimmt immer noch nicht:

                  <?php
                  $dir=opendir ('./server');
                  while ($file = readdir ($dir)){
                    if (is_file($file))
                      $files[] = $file;
                  }
                  closedir($dir);
                  foreach($files as $handle)
                  {
                  $datei = file($handle);
                  print "<br><hr><I><b>Server:<U>".$handle."</b></I></U><hr><br>";
                  $a = "USER=";
                  $b = " Processor: ";
                  .
                  .
                  .
                  ?>

                  wenn ich richtig gezählt habe ist line 8 "foreach($files as $handle)".

                  Was srimmt denn nicht ?

                  Danke

                  1. nein.

                    Warning: Invalid argument supplied for foreach() in /usr/local/httpd/htdocs/rwzadm/menu/support/hardware/rwz-check.php on line 8

                    es stimmt immer noch nicht:

                    <?php
                    $dir=opendir ('./server');
                    while ($file = readdir ($dir)){
                      if (is_file($file))
                        $files[] = $file;
                    }
                    closedir($dir);
                    foreach($files as $handle)
                    {
                    $datei = file($handle);
                    print "<br><hr><I><b>Server:<U>".$handle."</b></I></U><hr><br>";
                    $a = "USER=";
                    $b = " Processor: ";
                    .
                    .
                    .
                    ?>

                    wenn ich richtig gezählt habe ist line 8 "foreach($files as $handle)".

                    Was srimmt denn nicht ?

                    so ein mist.
                    foreach sollte eigentlich passen.
                    als alternative zur foreach-zeile geht auch:
                      while(list($key,$handle)=each($files)){
                    wobei die foreach-zeile schon etwas schöner ausschaut.

                    damit nicht so eine hässliche fehlermeldung kommt, kannst du for das foreach noch schreiben:
                      if (is_array($files))

                    jetzt gilt es die fehlerquelle aufzuspüren !
                    eine fehlerquelle wäre, dass das verzeichnis './server' nichts enthält.
                    das skript erwartet ein verzeichnis namens 'server' im aktuellen verzeichnis, welches mindestens 2 files enthält.
                    du kannst ja in der obersten schlaufe eine test-ausgabe einbauen:
                      if (is_file($file)){
                        $files[] = $file;
                        echo $file;
                      }

                    oder du überprüfst, ob das verzeichnis vom skript richtig geöffnet wird:
                      if($dir=opendir ('./server')){
                        while ($file = readdir ($dir)){
                          if (is_file($file))
                            $files[] = $file;
                        }
                        closedir($dir);
                      } else {
                        echo "das verdammte verzeichnis geht nid auf.";
                      }

                    so, jetzt bist du wieder an der reihe. bau mal ein paar sächelchen davon ein. dann kannst du die fehlerquelle sicher orten.

                    bjoern

                    1. fehler gefnden:
                      die ausgabe von $file ergab eine reihe von daten die aneinander geklatsch sind:

                      "...te-pfu01.logf-und01.logra-kat01.logte-als01.logf-koe01.logte-ebe01.logte-eds01" (...)

                      wobei die ersten ... nicht von mir sind ( nur die in (...) ).

                      wodran liegt das woher kommen die ... ?
                      mein vorschlag:
                      vorher hatten wir das array so: ('datei1.log,datei2.log,...')

                      ich denke einfach das dass komma fehlt.

                      ??

                      1. fehler gefnden:
                        die ausgabe von $file ergab eine reihe von daten die aneinander geklatsch sind:

                        "...te-pfu01.logf-und01.logra-kat01.logte-als01.logf-koe01.logte-ebe01.logte-eds01" (...)

                        wobei die ersten ... nicht von mir sind ( nur die in (...) ).

                        wodran liegt das woher kommen die ... ?
                        mein vorschlag:
                        vorher hatten wir das array so: ('datei1.log,datei2.log,...')

                        ich denke einfach das dass komma fehlt.

                        nö. das muss so sein. da die ausgabe völlig blutt, ohne irgend eine formatierung ist, kommen die einzelnen dateinamen direkt hintereinander ohne abstand oder dergleichen auf den bildschirm.

                        das heisst, er findet alle dateien, somit wird $files auch schön gefüllt sein. und das verzeichnis kann er auch schön öffnen. somit ist das alles ok.

                        aber das mit den punkten könnte die ursache sein.
                        in einem verzeichnis hat es eben immer ein . für das aktuelle verzeichnis und ein .. für das höherliegende. ich dachte, dass mit dem if(is_file... das schon augeschlossen wird. anscheinend nicht. dann nimm es noch explizit weg:

                        <?php
                        $dir=opendir ('./server');
                        while ($file = readdir ($dir)){
                          if (is_file($file) && $file != '.' && $file != '..')
                            $files[] = $file;
                        }
                        closedir($dir);
                        if (is_array($files))
                        foreach($files as $handle)

                        hmm, schau 'mer mal...

                        bjoern

                        1. es passiert garnichts

                          nochmal das script // habe ichs richtig kopiert ?:

                          <?php
                          $dir=opendir ('./server');
                          while ($file = readdir ($dir)){
                            if (is_file($file) && $file != '.' && $file != '..')
                              $files[] = $file;
                          }
                          closedir($dir);
                          if (is_array($files))
                          foreach($files as $handle)
                          {
                          $datei = file($handle);
                          print "<br><hr><I><b>Server:<U>".$handle."</b></I></U><hr><br>";
                          $a = "USER=";
                          $b = " Processor: ";
                          $c = " CPU Clock Speed: ";
                          $d = " Extended Memory: ";
                          $e = "Fixed Disk";
                          for($i=0;$i<count($datei);$i++)
                          {
                          if(eregi($b,$datei[$i])) $array[0][] = $datei[$i];
                          if(eregi($a,$datei[$i])) $array[1][] = $datei[$i];
                          if(eregi($e,$datei[$i])) $array[4][] = $datei[$i];
                          if(eregi($d,$datei[$i])) $array[3][] = $datei[$i];
                          if(eregi($c,$datei[$i])) $array[2][] = $datei[$i];
                          }
                          reset($array);
                          while(list($key,$val)=each($array[0])) {
                          print "<b>";
                          echo $array[1][$key];
                          print "</b><br><br>";
                          echo $val;
                          print "<br>";
                          echo $array[2][$key];
                          print "<br>";
                          echo $array[3][$key];
                          print "<br>";
                          echo $array[4][$key];
                          print "<br><hr>";
                          }
                          print "<br><br>";
                          }
                          ?>

                          Danke

                          1. es passiert garnichts

                            damit meine ich eine weiße seite wo nix steht :)

                          2. es passiert garnichts

                            kacke.

                            nochmal das script // habe ichs richtig kopiert ?:

                            hmm. ja, ist schon richtig kopiert. zumindest so, wie ich dachte.

                            ah. jetzt ist mir doch gerade etwas ganz wichtiges eingefallen. und das muss unbedingt geändert werden, sonst geht gar nix (so wie jetzt eben). ich weiss aber noch ned, ob das das einzige problem ist. sorry, dass ich erst jetzt damit rausrücke, war aber keine absicht.

                            also: die files sind im verzeichnis ./server und das proggie will die files aber im aktuellen verzeichnis öffnen, daher:

                            <?php

                            $verzeichnis = './server';

                            $dir=opendir ('./server');

                            $dir=opendir($verzeichnis); //statt zeile oben dran

                            while ($file = readdir ($dir)){
                              if (is_file($file) && $file != '.' && $file != '..')
                                $files[] = $file;
                            }
                            closedir($dir);

                            //if (is_array($files)) //zum testen erst einmal auskommentieren

                            foreach($files as $handle)
                            {
                            $datei = file($handle);

                            $datei = file($verzeichnis."/".$handle); //statt zeile oben dran
                               ...

                            mal sehen, was passiert .

                            bjoern

                            1. mal sehen, was passiert .

                              bei dem hier:

                              <?php
                              $verzeichnis = './server';
                              $dir=opendir($verzeichnis);
                              while ($file = readdir ($dir)){
                                if (is_file($file) && $file != '.' && $file != '..')
                                  $files[] = $file;
                              }
                              closedir($dir);
                              if (is_array($files))
                              foreach($files as $handle)
                              {
                              $datei = file($verzeichnis."/".$handle);
                              print "<br><hr><I><b>Server:<U>".$handle."</b></I></U><hr><br>";
                              $a = "USER=";
                              $b = " Processor: ";
                              $c = " CPU Clock Speed: ";
                              $d = " Extended Memory: ";
                              $e = "Fixed Disk";
                              for($i=0;$i<count($datei);$i++)
                              {
                              if(eregi($b,$datei[$i])) $array[0][] = $datei[$i];
                              if(eregi($a,$datei[$i])) $array[1][] = $datei[$i];
                              if(eregi($e,$datei[$i])) $array[4][] = $datei[$i];
                              if(eregi($d,$datei[$i])) $array[3][] = $datei[$i];
                              if(eregi($c,$datei[$i])) $array[2][] = $datei[$i];
                              }
                              reset($array);
                              while(list($key,$val)=each($array[0])) {
                              print "<b>";
                              echo $array[1][$key];
                              print "</b><br><br>";
                              echo $val;
                              print "<br>";
                              echo $array[2][$key];
                              print "<br>";
                              echo $array[3][$key];
                              print "<br>";
                              echo $array[4][$key];
                              print "<br><hr>";
                              }
                              print "<br><br>";
                              }
                              ?>

                              wieder nix
                              und auskommentiert

                              //if (is_array($files)) //zum testen erst einmal auskommentieren

                              meldet er den foreach fehler.

                              hhhmmmmm

                              1. lass uns doch mal folgendes versuchen:

                                wir lesen den ordner aus und setzen zwischen jede file ein ","
                                so das dass array den inhalt "datei1.log,datei2.log,datei3.log,..."
                                wenn wir das erstmal haben können wir doch ein neues array anlegen so wir wir es am anfang hatten, wo wir manuell die dateien angegeben haben und nun machen wir an diese stelle wo vorher die manuelle eingabe war diese array hin
                                file('$dateie[]')
                                also so in der art ...

                                1. lass uns doch mal folgendes versuchen:

                                  wir lesen den ordner aus und setzen zwischen jede file ein ","
                                  so das dass array den inhalt "datei1.log,datei2.log,datei3.log,..."
                                  wenn wir das erstmal haben können wir doch ein neues array anlegen so wir wir es am anfang hatten, wo wir manuell die dateien angegeben haben und nun machen wir an diese stelle wo vorher die manuelle eingabe war diese array hin
                                  file('$dateie[]')
                                  also so in der art ...

                                  das macht irgendwie keinen sinn. denn im moment passiert folgendes:
                                  verzeichnis öffnen
                                  schlaufe wenn etwas im verzeichnis
                                    wenn ein file gefunden
                                      dann zum array $file hinzufügen
                                  ende der schlaufe
                                  das heisst, wir haben schon ein perfektes array. du hast ja einmal den output getestet. das ging ja.

                                  aber jetzt. ging etwas länger, da ich mir ein plätzchen auf 'nem apache-server gesucht habe.
                                  das is_file... hat probleme gemacht. das kann man natürlich auch umkehren:
                                    if (!is_dir($datei)){

                                  so. tu das mal rein tun ! und dann lass fegen.
                                  hab's jetzt sogar getestet. bei mir hat's gefunzt.

                                  bjoernche

                                  1. so das sagt er bei mir:

                                    -------------------------------------------------

                                    Server:.

                                    Warning: Variable passed to reset() is not an array or object in /usr/local/httpd/htdocs/rwzadm/menu/support/hardware/rwz-check.php on line 28

                                    Warning: Variable passed to each() is not an array or object in /usr/local/httpd/htdocs/rwzadm/menu/support/hardware/rwz-check.php on line 29

                                    Server:..

                                    Warning: Variable passed to each() is not an array or object in /usr/local/httpd/htdocs/rwzadm/menu/support/hardware/rwz-check.php on line 29

                                    Server:te-pfu01.log
                                    USER=doerrre

                                    Processor: Intel Pentium with MMX-201
                                    CPU Clock Speed: 201 MHz
                                    Extended Memory: 31 MB (31 MB Free)
                                    C: 1222 MB 610 MB 612 MB Fixed Disk

                                    --------------------------------------------------

                                    und dann halt so wie es sein soll.

                                    ist das script in ordnung ???:

                                    --------------------------------

                                    <?php
                                    $verzeichnis = './server';
                                    $dir=opendir($verzeichnis);
                                    while ($file = readdir ($dir))
                                      if (!is_dir($datei)){
                                        $files[] = $file;
                                    echo $file;
                                    }
                                    closedir($dir);
                                    if (is_array($files)){
                                    foreach($files as $handle)
                                    {
                                    $datei = file($verzeichnis."/".$handle);
                                    print "<br><hr><I><b>Server:<U>".$handle."</b></I></U><hr><br>";
                                    $a = "USER=";
                                    $b = " Processor: ";
                                    $c = " CPU Clock Speed: ";
                                    $d = " Extended Memory: ";
                                    $e = "Fixed Disk";
                                    for($i=0;$i<count($datei);$i++)
                                    {
                                    if(eregi($b,$datei[$i])) $array[0][] = $datei[$i];
                                    if(eregi($a,$datei[$i])) $array[1][] = $datei[$i];
                                    if(eregi($e,$datei[$i])) $array[4][] = $datei[$i];
                                    if(eregi($d,$datei[$i])) $array[3][] = $datei[$i];
                                    if(eregi($c,$datei[$i])) $array[2][] = $datei[$i];
                                    }
                                    reset($array);
                                    while(list($key,$val)=each($array[0])){
                                    print "<b>";
                                    echo $array[1][$key];
                                    print "</b><br><br>";
                                    echo $val;
                                    print "<br>";
                                    echo $array[2][$key];
                                    print "<br>";
                                    echo $array[3][$key];
                                    print "<br>";
                                    echo $array[4][$key];
                                    print "<br><hr>";
                                    }
                                    print "<br><br>";
                                    }
                                    }else
                                    {
                                    print "ERROR - Script konnte nicht ausgeführt werden.";
                                    }
                                    ?>

                                    --------------------------

                                    ???????????

                                    Danke.