Array zerlegen

Franz

Erfahrenes Mitglied
Hi!

Ich lese ein Verzeichnis aus und bestimmte wie viele ordner in einem verzeichnis liegen:

PHP:
<?
$verz = opendir("./");
$array = array("");
$gesamt = 0;

while ($file = readdir ($verz))
{
   if ($file !="." && $file !="..")
  {
     array_push($array,($gesamt = $gesamt + count ($file)));

  }
}
closedir($verz);
natcasesort($array);
foreach ($array as $value)
{
   echo "$value";
}
?>

wenn jetzt zum bsp 4 ordner in dem verzeichnis liegen, gibt er mir fogende ausgabe aus:

1234

wie kann ich jetzt aber nur ausgeben, das sich 4 ordner in dem verz. befinden??? sprich nur den vierer ausgeben???

hoffe auf hilfe und danke im vorraus
 
Wenn du es schaffst, dass in den Array nur noch Verzeichnisse enthalten sind, kannst du die Elemente mit count($Arrayname) auslesen.

Wenn das noch nicht der Fall ist, musst du halt irgendwie dafür sorgen, dass nur Verzeichnisse in dem Array sind, also zwei Arrays anlegen, eines für Dateinamen und eins für Verzeichnisse. Die Fallunterscheidung kann man sehr leicht (zwar dann nicht 100%ig sicher, aber doch recht gut) machen, indem man das vierte Zeichen von hinten checkt. Ist es ein . so stuft man das ganze als Datei ein.
 
ja aber das script liest ja keine dateien aus, sondern nur ordner

es zählt im prinzip auch richtig, aber eben wenn vier ordner drinnen sind, zählt er mir 1234

er soll aber nur den vierer ausgeben...
 
so ich bin selber draufgekommen, war einfach eine klammer sache

PHP:
<?
$verz = opendir("./");
$array = array("");
$gesamt = 0;

while ($file = readdir ($verz))
{
   if ($file !="." && $file !="..")
  {
     array_push($array,($gesamt = $gesamt + count ($file)));

  }
}

echo $gesamt; 
closedir($verz);
?>

die rot gekennzeichnete stelle musste einfach aus der schleife genommen werden ;-) aber trotzdem danke...
 
Das Script liest Dateien und Ordner aus (warscheinlich auch symlinks).

mit dem PHP-Befehl is_dir() kann man abfragen ob ordner oder nicht :-)
 
Zurück