Bjoern: 2 schleifen ineinander

Beitrag lesen

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