kostenloser Webspace werbefrei: lima-city


Ordner auslesen mit Dateinamensortierung

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    t*********************n

    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.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Vielleicht könntest du dein Script mal als kleinen Gedankenanstoß hier reinschreiben.
  4. 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
  5. 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?
  6. 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
  7. Autor dieses Themas

    t*********************n

    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&uuml;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.
  8. 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
  9. Autor dieses Themas

    t*********************n

    ja ich danke trotzdem nochmal allen für die Bemühung .. '!!
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!