Mit <select> Bilder in einem Verzeichnis auflisten

Maxm123

Mitglied
ich möchte in einem formular mit der <select> funktion mir bilder auflisten lassen die in einem bestimmten ordner sind. wie geht das?
 
Hallo Maxm123,

PHP:
<?php
$array = array();
$d = dir("/das/gewuenschte/verzeichnis");
while (false !== ($entry = $d->read())) {
   $array[] = $entry;
}
$d->close();

$files = array();
foreach($array as $check){
   if(preg_match("/(\.jpg)$/i",$check)){
      $files[] = $check;
   }
}

if(!empty($files)){
   echo '<select name="select">';
   foreach($files as $file){
      echo '<option value='.$file.'>'.$file.'</option>';
   }
   echo '</select>';
}
else{
   echo 'Keine Bilder gefunden.';
}
?>

bitte auf die Netiquette achten, danke :)

MfG
 
Hey,
viele Wege führen bekanntlich nach Rom, deshalb würde ich Euch / Dir auch meinen persönlichen Lösungsweg vorstellen.

PHP:
//...
#glob-Array erstellen*
$picsGlob_arr = glob('./imageDir/*.JPG');

print "<select name='select'>\n";

if (!empty($picsGlob_arr)) {

    foreach ($picsGlob_arr as $value) {
        $file_arr = explode('./imageDir/', (string)$value);
            print '<option value=' . $value . '>' . (string)$file_arr[1]
                 . ' - Size: ' . filesize($value) . "b</option>\n";
    }

    print '</select>';

} else {
    print '<option selected="true">No such file or directory!</option>'
         . '</select>';
}
//...

PS: Musst natürlich nur exploden, wenn du einen Dateipfad hast, liegen deine Bilder im "Home"-Verzeichnis, dann siehts ~ so aus:

PHP:
#glob-Array erstellen*
$picsGlob_arr = glob('*.JPG');

print "<select name='select'>\n";

if (!empty($picsGlob_arr)) {

    foreach ($picsGlob_arr as $value) {
           print '<option value=' . $value . '>' . (string)$value
                 . ' - Size: ' . filesize($value) . "b</option>\n";
    }

    print '</select>';

} else {
    print '<option selected="true">No such file or directory!</option>'
         . '</select>';
}
//...

*glob — Findet Dateinamen, die mit einem Muster übereinstimmen

Natürlich nur ein Vorschlag.

Grüße,

Alex
 
Zuletzt bearbeitet:
Zurück