Verzeichnis mit Unterverzeichnissen via PHP auslesen

Für meinen letzten Auftrag habe ich eine Bildergalerie programmiert, die ganz einfach Verzeichnisse auf einem Server ausliest und die sich darin befindenden Bilder als Thumbnails ausgibt.

Mit der Zeit wurde die Galerie immer komplexer und es kam ein Modul hinzu, mit dem sich per Adminpanel Bildbeschreibungen in einer Datenbank anlegen ließen. Aus bestimmten Gründen benötigte ich hierfür eine Funktion, die mir ein Verzeichnis mit allen Dateien und eben auch die in Unterverzeichnissen ausliest und in ein Array lädt. Im Internet habe ich leider kein Script gefunden, also habe ich selbst ein Code-Snippet geschrieben:

Das Verzeichnis-mit-Unterverzeichnissen-(mit deren Unterverzeichnisse usw.)-in-Array-lad-Script

<?php
$descres = array();
function load2array($dir) {
  global $descres;
  global $mdir;
  $handle = opendir($dir);
  while ($file = readdir($handle)) {

        if ($file != '.' && $file != '..') {
          $folder = str_replace($mdir, '', $dir);
          $descs[] = $folder . '/' . $file . '<br />';

          if (is_dir($dir . '/' . $file)) {

            load2array($dir . '/' . $file);

          } else $descs[] = $folder . '/' . $file . '<br />';

      }
  }
  closedir($handle);

  $descres = array_merge($descres, $descs);
  $descres = array_unique($descres);

}
$mdir = '../images/gallery'; //Verzeichnis, das durchsucht werden soll
load2array($mdir);
/* Zum Test wird $descres widergegeben
echo '<pre>';
print_r($descres);
echo '</pre><br />'; */
?>

Wenn man nicht oft mit rekursiven Funktionen arbeitet (so wie ich :) ), dann schleichen sich sehr schnell Fehler ein, die gar nicht so leicht zu finden sind – ich garantiere also für nichts. ;)

Ihr dürft das Code-Snippet gerne weiterverwenden. Es wäre nett, wenn ihr dafür einen Link zu meiner Seite setzt, das ist aber keine Pflicht.

Bei Fragen dürft ihr die Kommentarfunktion missbrauchen. :)

Datum 28.12.2008 | Kategorien PHP | Permalink | Trackback

Kommentare

Yiim

Bin zwar in PHP nicht allzu Fit finde aber eine nette Funktion. Werde ich einmal ausprobieren, doch derzeit ist die Zeit ein wenig knapp :)

Datum 30.12.2008 um 17:19 Uhr


Frische-zitronen.de | Webdesign | Webprogrammierung: Rekursives Auslesen von Verzeichnissen

[...] Dateien im richtigen Verzeichnis (späterer Menüpunkt) liegen. Ich musste nicht lange suchen : bei Webseitenpflege Maximilian Schmitt im blog.icedreams.de fand ich ein frei verwendbares Code-Snippet, welches die Inhalte in ein Array [...]

Datum 07.03.2009 um 18:16 Uhr



Kommentar schreiben