Loading...   Upload Image

Letztes Bildanzeigen lassen....Forum » Webzone » PHP & MySQL » Letztes Bildanzeigen lassen....

Neues Thema verfassen Neues Thema

  • DJaneMauziUser ist offline
    Beginner


    DJaneMauzi

    Registriert: 27.04.2008
    Beitraege: 42

    14.04.2013 um 00:50 Uhr

    Irgendwie bin ich zu bloed oder ich krieg es einfach nicht hin. Ich habe folgendes Problem:

    Ich moechte auf der Startseite das letzte, hochgeladene Bild anzeigen lassen. Den Code fr die Ordnerausgabe habe ich auch, dieser klappt auch wunderbar.

    <?php
    $verzeichnis = "img/Arts";        // Verzeichnis 
    // ---------------------------------------------------------------------------------
    
    $oeffnen = opendir($verzeichnis);    // oeffnet das angegebene Verzeichnis
      $i = 1; // Variable definieren
    while($file = readdir($oeffnen)){ //Dateien aus Ordner auslesen
        // Thumbs u. andere Dateien ausschliessen
        if ($file != "." && $file != ".." && $file != "Thumbs.db" && preg_match("/\./",$file)){
            $img[$i] = $file; // Die Dateien aus dem Ordner werden in ein array gepackt        
            $i++; //eins hochzaehlen
        }
    }
    closedir($oeffnen);         // Schliet den Ordner wieder 
    $anzahl = 1;		// Zaehlt alle Elemente des Arrays
    $file = $img[$anzahl];	// zufaelliges Bild ermitteln
    $image = $verzeichnis."/".$file;	// Variable definieren => Pfad + Grafik 
    ?>
    
    <img src='img/schau.png' style='background:url(<?php echo $image; ?>) top center;' />


    Der Orignalcode stammt von der lieben Alice, diesen man hier finden kann.

    Auch habe ich schon versucht aus der Bildverzeichnis ausgeben mit Blaetterfunktion einige Codes wie

    rsort($array); 			// Sortiert das $array
    
    foreach($array as $file) { 	// Hier wird das $array auseindander genommen
    
    	$dateienanzahl++;
    
    	if($dateienanzahl<=$anzeige && $dateienanzahl>$anzeige){


    natuerlich ebenfalls abgeaendert. Doch dies ging alles auf dem Scheiterhaufen.Somit immer wieder Fehler auftauchten.

    Ich wuerde mich wirklich ueber einen kleinen Gedankensto freuen. :)


    Falls nun Fragen aufkommen, wie "Wieso nutzt du dann nicht das Bildverzeichnis und setzt einfach die Anzahl auf 1? Blaetterfunktion kann man ja auch rausnehmen!" Auf solch ein Gedanke kam ich auch schon. Da bei mir der Code aber in der header.php befindet, wollen andere Unterseiten wo ich das Skript verwende, faksen machen.



  • tomhUser ist offline
    Newbie



    Registriert: 21.06.2013
    Beitraege: 10

    21.06.2013 um 21:58 Uhr

    Hallo!

    Auch wenn meine Antwort etwas spt kommt, verfasse ich sie trotzdem, vielleicht kann ich damit ja irgendjemandem behilflich sein.

    Erweitere deinen Code einfach um ein paar Details:

    <?php
    $verzeichnis = "img/Arts";        // Verzeichnis 
    // ---------------------------------------------------------------------------------
    
    $oeffnen = opendir($verzeichnis);    // oeffnet das angegebene Verzeichnis
      $i = 1; // Variable definieren
    
    /** ERWEITERUNG START **/
    $lastModified = array('filename'=>null, 'filemtime'=>0); // Array mit Platzhalterwerten fr zuletzt modifizierte Datei festlegen
    /** ERWEITERUNG ENDE **/
    
    while($file = readdir($oeffnen)){ //Dateien aus Ordner auslesen
        // Thumbs u. andere Dateien ausschliessen
        if ($file != "." && $file != ".." && $file != "Thumbs.db" && preg_match("/\./",$file)){
            $img[$i] = $file; // Die Dateien aus dem Ordner werden in ein array gepackt        
    
            /** ERWEITERUNG START **/
            if(filemtime($file)>$lastModified['filemtime']) $lastModified = array('filename'=>$file, 'filemtime'=>filemtime($file)); // berprft ob die aktuelle Datei neuer als die letzte modifizierte Datei ist, wenn ja, wird das $lastModified Array mit den Werten der aktuellen Datei aktualisiert
            /** ERWEITERUNG ENDE **/
    
            $i++; //eins hochzaehlen
        }
    }
    closedir($oeffnen);         // Schliet den Ordner wieder 
    $anzahl = 1;		// Zaehlt alle Elemente des Arrays
    $file = $img[$anzahl];	// zufaelliges Bild ermitteln
    $image = $verzeichnis."/".$file;	// Variable definieren => Pfad + Grafik 
    
    /** ERWEITERUNG START **/
    $lastModifiedImage = $verzeichnis."/".$lastModified['filename']; // Pfad zum letzten modifizierten Bild festlegen
    /** ERWEITERUNG ENDE **/
    
    ?>
    
    <img src='img/schau.png' style='background:url(<?php echo $image; ?>) top center;' />
    
    Zuletzt modifizierte Datei: 
    <img src='img/schau.png' style='background:url(<?php echo $lastModifiedImage; ?>) top center;' />


    Habs nur schnell geschrieben und nicht getestet, sollte aber funktionieren. Wenn nicht, bitte hier antworten.

    Zustzlich sollte man bei obigem Beispiel noch einen Check auf den Dateityp machen, dass wirklich nur Bilder ausgegeben werden und sonst nichts (keine .html/.php/.js/... Dateien, sofern welche im Ordner sein sollten).

    LG



    Der Beitrag wurde insgesamt 1 mal editiert, zuletzt 21.06.2013 um 22:29 Uhr ...

[ 1 ] Seite 1 von 1


       ALL-INKL.COM - Webhosting Server Hosting Domain Provider