Ordner auslesen mit Dateinamensortierung
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aktuellste eintrag
album
angabe
array
ausgabe
ausgeben
auslese
code
dank
datumsangabe
einlesen
falschen beitrag
fehler
fehlermeldung
file
index
sortieren
tag
test
verzeichnis
-
Also ich brauche ein Skript was einen Ordner ausließt und dann dem Dateinamen nach sortiert. Das ist nicht das schwierige, sondern: die Datei-/Ordnernamen sind Datumstag/angabe">angaben also wie: 09.11.2008 , 02.11.2009 , ... . Und ich möchte es erst nach Jahr, dann nach Monat und dann nach Tag sortieren. Ich habe da schon selber Sachen geschrieben, die aber nichts geworden sind und ich langsam verzweifel weil ich nicht mehr weiter weiß.
Ich wäre sehr dankbar wenn mir jemand helfen könnte.
Danke im Voraus für alle Bemühungen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Vielleicht könntest du dein Script mal als kleinen Gedankenanstoß hier reinschreiben.
-
Du müsstest das Verzeichnis in ein Array einlesen und dann das Array sortieren und ausgeben.
Sieht dann in etwa so aus:
<?php $path = 'C:\Test\dates'; # Vergleichsfunktion für usort() function cmp($a, $b) { $a = strtotime($a); $b = strtotime($b); if ($a == $b) return 0; return ($a < $b) ? -1 : 1; } # auslesen des Verzeichnisses $dirlist = array(); if ($handle = opendir($path)) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { array_push($dirlist, $file); } } closedir($handle); } # sortieren nach Angaben in cmp() usort($dirlist, 'cmp'); # Ausgabe foreach($dirlist as $value) { echo $value."<br />\n"; } ?>
Grüßle
Beitrag zuletzt geändert: 17.2.2009 14:12:17 von scout -
scout schrieb:
Du müsstest das Verzeichnis in ein Array einlesen und dann das Array sortieren und ausgeben.
Sieht dann in etwa so aus:
<?php $path = 'C:\Test\dates'; # Vergleichsfunktion für usort() function cmp($a, $b) { $a = strtotime($a); $b = strtotime($b); if ($a == $b) return 0; return ($a < $b) ? -1 : 1; } # auslesen des Verzeichnisses $dirlist = array(); if ($handle = opendir($path)) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { array_push($dirlist, $file); } } closedir($handle); } # sortieren nach Angaben in cmp() usort($dirlist, 'cmp'); # Ausgabe foreach($dirlist as $value) { echo $value."<br />\n"; } ?>
Grüßle
Hat es bei dir irgend eine Fehlermeldung angezeigt? Wenn ja, welche? -
Hast du das jetzt so übernommen?
Ich glaub du musst den Pfad auch ändern.
Da steht ja C:\Test\dates
Beitrag zuletzt geändert: 17.2.2009 15:14:09 von seth93 -
Also ich habe mir in Nächte lange Arbeit auch noch ein Skript zusammengebastelt und bei mir funktioniert es. ':
<?php if(!isset($album) || $album == "") { $handle = opendir('.'); $datumarray = array(); $counter = 0; while ($file = readdir($handle)) { if ($file != '.' && $file != '..' && $file != 'index.php') { $datumarray[$counter] = $file; $counter++; } } $countdatum = count($datumarray); if($countdatum >= 1) { $datumarray1 = array(); $startdd = 0; $startmm = 3; $startyyyy = 6; $lengthdd = 2; $lengthmm = 2; $lengthyyyy = 4; $counter1 = 0; while ($counter1 < $countdatum) { $dd = substr($datumarray[$counter1],$startdd,$lengthdd); $mm = substr($datumarray[$counter1],$startmm,$lengthmm); $yyyy = substr($datumarray[$counter1],$startyyyy,$lengthyyyy); $datumarray1[$counter1] = $yyyy.'/'.$mm.'/'.$dd ; $counter1++; } rsort($datumarray1); $countdatum1 = count($datumarray1); echo 'Es sind zur Zeit '.$countdatum.' Alben verfügbar:'; echo '<ul>'; $startdd = 8; $startmm = 5; $startyyyy = 0; $lengthdd = 2; $lengthmm = 2; $lengthyyyy = 4; $counter2 = 0; while ($counter2 < $countdatum1) { $dd = substr($datumarray1[$counter2],$startdd,$lengthdd); $mm = substr($datumarray1[$counter2],$startmm,$lengthmm); $yyyy = substr($datumarray1[$counter2],$startyyyy,$lengthyyyy); $ddmmyyyy = $dd.'.'.$mm.'.'.$yyyy; echo '<li>'; echo '<a href="?Album='.$ddmmyyyy.'">'.$ddmmyyyy.'</a>'; echo '</li>'; $counter2++; } echo '</ul>'; }else{ echo 'Fehler'; } }else{ $handle = opendir($album); $albumarray = array(); $counter = 0; while ($file = readdir($handle)) { if ($file != '.' && $file != '..' && $file != 'index.php' && $file != 'thumbnails') { $albumarray[$counter] = $file; $counter++; } } sort($albumarray); $countalbum = count($albumarray); $counter1 = 0; while ($counter1 < $countalbum) { $bild = $album.'/'.$albumarray[$counter1]; $thumb = $album.'/thumbnails/'.$albumarray[$counter1]; echo '<div class="box"><a href="'.$bild.'"><img src="'.$thumb.'" /></a></div>'; $counter1++; } } ?>
Der Code ist jetzt so gebaut das der , vom Dateinamen her, aktuellste Eintrag ganz oben angezeigt wird. -
cookies schrieb:
Hat es bei dir irgend eine Fehlermeldung angezeigt? Wenn ja, welche?
Ähm ich weiß jetzt nicht ob du evtl. den falschen Beitrag zitiert hast, aber ich als ANTWORTENDER habe das Script ausprobiert. Warum?
Und es hat keine Fehler angezeigt! Evtl. Path ganz oben nicht abgeändert?
@tactical-airsoft-berlin: Hat sich dein Problem somit geklärt? Ich meine dein Script durchzugehen war mir jetzt bissl zu mühsam, aber wenn es das macht was es soll ist doch super
Grüßle
Beitrag zuletzt geändert: 17.2.2009 18:06:26 von scout -
ja ich danke trotzdem nochmal allen für die Bemühung .. '!!
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage