zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Bilder nach Datum ausgeben

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 03.05.2012, 00:32
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 20.08.2010
Beiträge: 17
Desaster befindet sich auf einem aufstrebenden Ast
Standard Bilder nach Datum ausgeben

Hallo,

und zwar hab ich folgenden schönen Code gefunden, um Bilder aus einem ordner in ein Array einzulesen, und diesen dann auszugeben (http://alice-grafixx.de/PHP-MYSQL-Tu...terfunktion-84

PHP-Code:
<?php

$ur 
$_SERVER['script_name']; // Dateipfad

// Seitenzahl ermitteln
$go = (!empty($_GET['go'])) ? $_GET['go'] : 1;
// -> wenn keine Seitenzahl angegeben wird, dann ist es die erste Seite

// ---------------------- Konfiguration -------------------------------------------

$anzeige 1;                 // Zahl der Grafiken die pro Seite angezeigt werden sollen  
$p 2;               // Anzahl der Links die auf der Seite angezeigt werden sollen
$verzeichnis "images";        // Verzeichnisbestimmung fuer die Bildausgabe

// ---------------------------------------------------------------------------------

$oeffnen opendir($verzeichnis);    // oeffnet das angegebene Verzeichnis

//Dateien aus Ordner auslesen
while ($file readdir ($oeffnen)) { 
 
    
// Thumbs ausschliessen
    
if ($file != "." && $file != ".." && $file != "Thumbs.db" && preg_match("/\./",$file)){

        
$array[] = $file// Die Dateien aus dem Ordner werden in ein array gepackt
    
}
}

closedir($oeffnen);         // Schließt den Ordner wieder
sort($array);             // Sortiert das $array

foreach($array as $file) {     // Hier wird das $array auseindander genommen

    
$dateienanzahl++;  

    if(
$dateienanzahl<=$anzeige*$go && $dateienanzahl>$anzeige*($go-1)){
        
            
// nur dass aus, was hinter dem .Punkt steht
        
$punkt strrchr($file'.');
        
//Dateiendung herausfiltern
        
$title str_replace($punkt''$file);
        
        
// Grafik ausgeben
            
echo "<img src=\"$verzeichnis/$file\" title=\"$title\"  alt=\"$title\"/>\n";
    }
        
}

// ---------------------------------- Seitennavigation definieren ---------------------

$pages ceil($dateienanzahl $anzeige); // Anzahl der Seiten ermitteln

// korrigieren der aktuellen Seite
if(empty($_GET['go'])) {
    
$go 1;
} elseif(
$_GET['go'] <= || $_GET['go'] > $pages) {
    
$go 1;
} else {
    
$go $_GET['go'];
}

// Linkkette
$links = array();

if((
$go $p) < 1){          
  
$prevOffset $go 1;      
}else {          
  
$prevOffset $p;      
}            
if((
$go $p) > $pages) {          
  
$nextOffset $pages $go;      
}else {          
  
$nextOffset $p;      
}          
$off = ($go $prevOffset);    
                
if (
$go$prevOffset 1){          
    
$first 1;
    
$links[] = "<a href=\"$url?go=$first\" title=\"Zur ersten Seite springen\">&laquo; Erste ...</a>\n";      
}      
if(
$go != 1){          
    
$prev $go-1;
    
$links[] = "<a href=\"$url?go=$prev\" title=\"Zurueck zur letzen Seite\"> &laquo;</a>\n";     
}   
       
for(
$i $off$i <= ($go $nextOffset); $i++){  
  if (
$i != $go){              
        
$links[] = "<a href=\"$url?go=$i\" title=\"Seite $i anzeigen\">$i</a>\n";
  }elseif(
$i == $pages) {              
        
// aktuelle Seite, braucht keinen Link
        
$links[] = "<span class=\"current\">[ $i ]</span>\n";  
        }          
  elseif(
$i == $go){              
        
// aktuelle Seite, braucht keinen Link
        
$links[] = "<span class=\"current\">[ $i ]</span>\n";  
        }      
}                
if(
$go != $pages){          
    
$next $go+1;
    
$links[] = "<a href=\"$url?go=$next\" title=\"Weiter zur naechsten Seite\"> &raquo; </a>\n";
}      

if (
$off+$prevOffset*$pages){          
    
// zur letzen Seite springen
    
$last $pages;
    
$links[] = "<a href=\"$url?go=$last\" title=\"Zur letzen Seite springen\">... Letzte &raquo;</a>\n";
}      


// Alle Links in einen String packen
$link_string implode(" &nbsp; "$links); 

 echo 
"<div class=\"navigation\">\n";

 echo 
"<span class=\"pages\">Seite $go von $pages</span>\n";

 echo 
$link_string// Ausgabe der Seitennavigation
 
 
echo "</div>\n";

?>
Ich möchte gerne, dass die Bilder nach Datum geordnet werden.

Mein Ansatz war folgender:

PHP-Code:
        $array[] = $file// Die Dateien aus dem Ordner werden in ein array gepackt
                
$array[] = filemtime($file
Und dann per rsort($array) anordnen lassen.

Jedoch funktioniert das nicht.

Wäre super wenn mir jemand einen Sprung geben könnte.

Freundliche Grüße

Geändert von Desaster (03.05.2012 um 15:38 Uhr)
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 03.05.2012, 09:10
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 25.07.2009
Ort: Wanne-Eickel
Beiträge: 223
TanjaP. befindet sich auf einem aufstrebenden Ast
Standard

Wonach sollen die Bilder sortiert werden? Nach dem Datum der Aufnahme (Exif) oder nach dem Datum der Bearbeitung?
Dein Link führt auf eine 404-Seite.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 03.05.2012, 11:07
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 18.06.2007
Ort: Verden
Beiträge: 405
chorn wird schon bald berühmt werden
Standard

PHP-Code:
$array[] = filemtime($file
an der Stelle erzeugst du aber ein neues Element, so als würdest du eine zweite Datei in das Array schreiben. Du brauchst eine komplexere Struktur für deine Dateien, im Moment steht hinter jeder Datei ja nur direkt der Dateiname, du musst aber zu jedem Eintrag einen Dateinamen und die Dateigröße mitliefern um das sortieren zu können.

So sieht das bei dir aus

Code:
Array
(
    [0] => bild1.jpg
    [1] => image2.png
    [2] => datei3.pdf
)
So sieht das mit deiner Erweiterung aus

Code:
Array
(
    [0] => bild1.jpg
    [1] => 1234
    [2] => image2.png
    [3] => 4567
    [4] => datei3.pdf
    [5] => 7890987
)
Und so sollte das aussehen

Code:
Array
(
    [0] => Array
        (
            [name] => bild1.jpg
            [size] => 1234
        )

    [1] => Array
        (
            [name] => image2.png
            [size] => 4567
        )

    [2] => Array
        (
            [name] => datei3.pdf
            [size] => 7890987
        )

)
Das kannst du ungefähr so machen

PHP-Code:
$datei'name' ] = $file;
$datei'size' ] = filemtime"$verzeichnis/$file);
$array[] = $datei
bei filemtime() nicht das Verzeichnis vergessen. Und dann mit usort sortieren. Den Rest des Scriptes musst du dann aber auch auf die neue Struktur anpassen, effektiv also da wo du den Dateinamen brauchst statt auf $file auf $file[ 'name' ] zugreifen.

Geändert von chorn (03.05.2012 um 11:17 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 03.05.2012, 15:40
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 20.08.2010
Beiträge: 17
Desaster befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von TanjaP. Beitrag anzeigen
Wonach sollen die Bilder sortiert werden? Nach dem Datum der Aufnahme (Exif) oder nach dem Datum der Bearbeitung?
Dein Link führt auf eine 404-Seite.
Hab den Link geändert, sortieren nach dem Upload-Datum, sodass das zuletzt hochgeladene Bild als erstes angezeigt wird.

@chorn, ich probiers mal, danke!
Mit Zitat antworten
  #5 (permalink)  
Alt 06.05.2012, 14:03
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 20.08.2010
Beiträge: 17
Desaster befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

hab es versucht, allerdings ordnet er die Bilder nicht nach uploaddatum:

PHP-Code:
// ---------------------- Konfiguration -------------------------------------------

$anzeige 5;                 // Zahl der Grafiken die pro Seite angezeigt werden sollen  
$p 2;               // Anzahl der Links die auf der Seite angezeigt werden sollen
$verzeichnis "../thumbs/";        // Verzeichnisbestimmung fuer die Bildausgabe

// ---------------------------------------------------------------------------------

$oeffnen opendir($verzeichnis);    // oeffnet das angegebene Verzeichnis


//Dateien aus Ordner auslesen
while ($file readdir ($oeffnen)) { 
 
    
// Thumbs ausschliessen
    
if ($file != "." && $file != ".." && $file != "Thumbs.db" && preg_match("/\./",$file)){

$datei'name' ] = $file;
$datei'size' ] = filemtime"$verzeichnis/$file);
$array[] = $datei;  
    }
}

closedir($oeffnen);         // Schließt den Ordner wieder
usort($array);             // Sortiert das $array

foreach($array as $datei ) {     // Hier wird das $array auseindander genommen

    
$dateienanzahl++;  

    if(
$dateienanzahl<=$anzeige*$go && $dateienanzahl>$anzeige*($go-1)){
        
            
// nur dass aus, was hinter dem .Punkt steht
        
$punkt strrchr($datei['name'], '.');
        
//Dateiendung herausfiltern
        
$title str_replace($punkt''$datei['name']);
        
        
// Grafik ausgeben
            
echo '<img src="../thumbs/'.$datei['name'].'"">';

    }
        

Wäre super wenn du mal drüber sehen könntest.

Grüße
Mit Zitat antworten
  #6 (permalink)  
Alt 06.05.2012, 18:12
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 18.06.2007
Ort: Verden
Beiträge: 405
chorn wird schon bald berühmt werden
Standard

Zitat:
Zitat von Desaster Beitrag anzeigen
PHP-Code:
usort($array);             // Sortiert das $array 
Sollte mit der entsprechenden Fehlermedung abbrechen.
Mit Zitat antworten
  #7 (permalink)  
Alt 06.05.2012, 22:12
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 20.08.2010
Beiträge: 17
Desaster befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

bekomme leider keine Fehlermeldung angezeigt oder so
Mit Zitat antworten
  #8 (permalink)  
Alt 07.05.2012, 11:10
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 18.06.2007
Ort: Verden
Beiträge: 405
chorn wird schon bald berühmt werden
Standard

Komisch, jedenfalls braucht usort zwei Parameter, einmal das array das du sortieren willst, und ein mal die Vergleichsfunktion die du dafür benutzen willst.

PHP: usort - Manual

Beispiel 2 verdeutlicht das. Ich hab da auch noch eine Beispieldatei rumliegen

PHP-Code:
<?php

    $array 
= array(

        array(
            
'name' => 'image2.png',
            
'size' => '4567'
        
),
        array(
            
'name' => 'bild1.jpg',
            
'size' => '1234'
        
),
        array(
            
'name' => 'datei3.pdf',
            
'size' => '7890987'
        
)
    
    );

    function 
sorter$a$b ){
    
        return 
$a'size' ] - $b'size' ];
    
    }

    echo 
'<pre>'print_r$array), '</pre>';
    
    
usort$array'sorter' );

    echo 
'<pre>'print_r$array), '</pre>';
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit Schattenrahmen um Bilder (Typo3) micronix CSS 2 20.08.2012 21:01
Aktuelles Datum als Link ausgeben ghacha26 Serveradministration und serverseitige Scripte 2 24.03.2012 21:07
bilder in div container unten anordnen diegaby CSS 12 17.11.2008 15:08
Bildergalerie mit Variablen fledermaus Serveradministration und serverseitige Scripte 1 08.04.2008 09:57
(PHP) Ausgabe: Letztes Datum ausgeben Örny Serveradministration und serverseitige Scripte 5 14.02.2006 20:03


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:27 Uhr.