einfache Bildergalerie dynamisch generieren

J

j-l-n

Guest
Dieses simple Bildergalerie-Skript hat folgende Merkmale:

  • geordnet nach Upload-Datum (neueste zuerst)
  • die eingebundenen Thumbnails sind mit den Bildern in Originalgröße verlinkt

Skript:
PHP:
<?php

//© 2014 Julian
//http://forum.jswelt.de/members/Julian.html

$folder = "bilder"; //Ordner mit Bildern
$thumbnail_folder = "thumbnails"; //Ordner mit Thumbnails

function get_all_pictures_in($directory) {
  $do_not_scan = array('.', '..'); //nicht berücksichtige Dateien (z.B. auch .htaccess oder index.php)
  $files_in_folder = array();
  foreach (scandir($directory) as $file_x) {
    if (in_array($file_x, $do_not_scan)) continue;
    $files_in_folder[$file_x] = filemtime($directory . '/' . $file_x);
  }
  arsort($files_in_folder);
  $files_in_folder = array_keys($files_in_folder);
  return $files_in_folder;
}


$all_pictures = get_all_pictures_in($folder);
foreach ($all_pictures as $picture) {

$info = pathinfo($folder."/".$picture); 
$path = $info['dirname'];
$file = $info['basename'];
$filesize = ceil(filesize($folder."/".$picture)/1024/1024); //Dateigröße in MB
?>

<a href="<?php echo htmlentities($folder."/".$picture); ?>" title="Original öffnen">
  <img src="<?php echo htmlentities($thumbnail_folder."/".$picture); ?>" alt="Bild lädt..." height="100" />
</a> 

<?php }; ?>

Online-Demo:
developer.julian-jp.tk


Das Ganze kann natürlich perfekt durch eine Lightbox o.ä. ergänzt werden.

Ich würde mich über Feedback und Verbesserungsvorschläge freuen!
 
Zuletzt bearbeitet:
Ich würde ja das, was in das href bzw. das src reingeschrieben wird, durch htmlentities() jagen... ist zwar bei den meisten Dateisystemen nicht nötig, da " meistens nicht erlaubt ist, aber wer weiß, auf welchem Dateisystem das mal läuft.
 
Hab ich gleich mal direkt ergänzt.
Übrigens hab ich auch noch die richtigen Variablennamen eingefügt, mir ist nämlich aufgefallen, dass ich an einer Stelle welche benutzt habe, die überhaupt nicht definiert waren. Ich finde, das übersieht man leicht, z.B. $file statt $picture...
 
Zurück
Oben