Antworten auf deine Fragen:
Neues Thema erstellen

Ordner Auslesen + Unterordner

devilofcrash007

Nicht mehr ganz neu hier

Hallo ich habe hier nen script was alle daten ausliest und nach dem Alphabet zu sortieren.

PHP:
<?php
$buchstabe_alt = "";
$verzeichnis = openDir("seiten");
while ($file = readDir($verzeichnis)) {
 if ($file != "." && $file != "..") {
  $buchstabe = strtoUpper(substr($file, 0, 1));
  if (!strstr($buchstabe_alt, $buchstabe)) {
   $buchstabe_alt .= $buchstabe;
   // Anfangsbuchstaben anzeigen
   echo "<strong>" . $buchstabe . "</strong> <br>"; 
  }
  echo "<a href=\"$file\">$file</a><br>\n";
 }
}
closeDir($verzeichnis);
?>

Hier wird ja der ordner seiten nach dateien durchsucht und angezeigt.

Nun meine Frage.:
Wie setze ich es um dass alle ordner die im ordner seiten sind ebenfals auslesen kann?
 

pac_nrw

Nicht mehr ganz neu hier

AW: Ordner Auslesen + Unterordner

So sollte es gehen:
PHP:
<?php
$buchstabe_alt = "";
$verzeichnis = openDir("seiten");
while ($file = readDir($verzeichnis)) {
 if ($file != "..") {
  $buchstabe = strtoUpper(substr($file, 0, 1));
  if (!strstr($buchstabe_alt, $buchstabe)) {
   $buchstabe_alt .= $buchstabe;
   // Anfangsbuchstaben anzeigen
   echo "<strong>" . $buchstabe . "</strong> <br>"; 
  }
  echo "<a href=\"$file\">$file</a><br>\n";
 }
}
closeDir($verzeichnis);
?>
 

M3g4Star

Nicht mehr ganz neu hier

AW: Ordner Auslesen + Unterordner

Lösungsvorschlag/Script direkt aus dem Manual: PHP: glob - Manual

Damit kannst du dann auch noch Bedingungen setzen welche Dateien du auslesen willst.

Gruß M3g4
 
Zuletzt bearbeitet:

sokie

Mod | Web

AW: Ordner Auslesen + Unterordner

da ist ja alles gesagt:) wenn es für dich interessant sein sollte: mit ucfirst() kannst du den ersten Buchstaben eines strings direkt gross machen. ist wahrscheinlich performanter.
 

Chriss1987

me.drinkCoffee();

AW: Ordner Auslesen + Unterordner

Hi,

also, wenn ich dich richtig verstanden habe, möchtest du die Unterordner und die Dateien der Unterordner auslesen, oder!? Da bietet sich generell eine Funktion an, die sich selbst aufruft und wieder genau das ausführt, was die eine Ordnerebne höher auch getan hat. Wenn ich deine Funktion mal zu Grunde lege:
PHP:
<?php

function mitunterordnern($dir)
    {
        $buchstabe_alt = "";
        $verzeichnis = openDir($dir);
        while ($file = readDir($verzeichnis))
            {
                if ($file != "." && $file != "..")
                    {
                        $buchstabe = strtoUpper(substr($file, 0, 1));
                        if (!strstr($buchstabe_alt, $buchstabe))
                            {
                                $buchstabe_alt .= $buchstabe;
                                // Anfangsbuchstaben anzeigen
                                echo "<strong>" . $buchstabe . "</strong> <br>"; 
                            }
                        echo "<a href=\"$file\">$file</a><br>\n";
                        if (is_dir($dir .'/'. $file))
                            {
                                mitunterordnern($dir .'/'. $file);
                            }
                    }
            }
        closeDir($verzeichnis);
        return true;
    }

mitunterordnern('seiten');

?>
So werden alle Dateien, Unterordner und Dateien in den Unterordnern ausgelesen.

Hier mal eine Funktion, die etwas erweitert ist:
PHP:
<?php
# @parms
# @$path    => Verzeichnisname, ohne abschließenden '/'
# @$tiefe   => wie tief soll gelesen werden? false = alles
# @$ext     => Suchmuster, wie bei glob, '*' = alle Dateien und Ordner, '*.ext' = nur Dateien mit der Erweiterung 'ext'
# @$only    => sollen NUR Dateien ('file') oder NUR Ordner ('dir') gesucht werden? Alles = false
# @$strip   => wenn true, dann werden leere Ordner nicht als Array dargestellt, sondern erhalten den Wert 'empty-dir'
# @$aktuell => 
# @return
# zurückgegeben wird ein multidimensionales Array, dessen Keys die Ordner- und Dateinamen enthält, die Values enthalten entweder den kompletten Pfad (bei Dateien), oder wiederum ein Array (bei Ordnern)
function filesAndDirs ($path, $tiefe, $ext = '*', $only = false, $strip = false, $aktuell = 0)
    {
        $glob = array();
        if ($only === false OR $only == 'dir')
            {
                foreach (glob($path.'/*', GLOB_ONLYDIR) AS $dir)
                    {
                        $aktuell++;
                        if (($aktuell <= $tiefe) OR ($tiefe === false))
                            {
                                $glob[basename($dir)] = filesAndDirs($dir, $tiefe, $ext, $only, $strip, $aktuell);
                            }
                        else
                            {
                                $glob[basename($dir)] = 'dir';
                            }
                        
                        if ($strip AND count($glob[basename($dir)]) == 0)
                            {
                                $glob[basename($dir)] = 'empty-dir';
                            }
                    }
            }
        
        if ($only === false OR $only == 'file')
            {
                foreach (glob($path.'/'.$ext) AS $file)
                    {
                        if (!is_dir($file))
                            {
                                $glob[basename($file)] = $file;
                            }
                    }
            }
        
        return $glob;
    }

$result = filesAndDirs("seiten", false, '*.jpg', false, true);

print_r($result);

?>

Schöne Grüße aus dem Sauerland!
Chriss
 

M3g4Star

Nicht mehr ganz neu hier

AW: Ordner Auslesen + Unterordner

@Chriss ... liest du de Beiträge die schon geschrieben wurden oder postest du um dich selbst weiter zu bilden?

Die Funktion unter php.net ist denke ich etwas ... nur ein klitzeklein wenig ... "sauberer"

:uhm:
 

netbandit

Aktives Mitglied

AW: Ordner Auslesen + Unterordner

@M3g4Star: Hättest vielleicht in Deinem Beitrag dazu schreiben sollen, dass der Link auf ein Lösungsvorschlag auf php.net verweist.
Ich dachte auch erst, Du linkst nur auf das Manual ;)
 
Zuletzt bearbeitet:

Chriss1987

me.drinkCoffee();

AW: Ordner Auslesen + Unterordner

@Chriss ... liest du de Beiträge die schon geschrieben wurden oder postest du um dich selbst weiter zu bilden?

Die Funktion unter php.net ist denke ich etwas ... nur ein klitzeklein wenig ... "sauberer"

:uhm:

Hi,

japp, lese die Beiträge schon, aber dachte auch, du verlinkst nur auf das Manual, desshalb bin ich dem Link nicht gefolgt ^^, mein Fehler...

Mir kommen solche Ideen spontan, dann setzte ich die um und wenn ich dann zum Absenden des Beitrages komme, ist schon wieder ne ganze Zeit vergangen und evtl haben andere schon die Lösung gegeben, desshalb kann es ab und zu sein, dass ich manche Sachen doppelt mache, aber ist auch iwie nen Selbstlernprozess... :p

Schöne Grüße aus dem Sauerland!
Chriss
 

ak56Lk

Noch nicht viel geschrieben

AW: Ordner Auslesen + Unterordner

Der Threadersteller kann sich auch selbst mal über "rekursive Funktionen" schlau machen. Ich wette, er ist auf die Seite gegangen, hat den Code kopiert, hat geklappt, wird verwendet aber wurde nicht verstanden, wieso weshalb warum das funktioniert. Da ich die Faulheit der Leute heutzutage kenne, sollte ich lieber direkt noch passende Links posten:


Rekursive Funktion - php bar

Wieso ich jetzt Links gegeben hab? Frag ich mich auch :D Vermutlich einfach nur, weil ich nett bin.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.619
Beiträge
1.538.363
Mitglieder
67.540
Neuestes Mitglied
Alex Weidner
Oben