Bilder im Verzeichnis mit PHP indexieren

Wer viel fotografiert, kennt das Problem, dass man größeren Benutzerzahlen Fotos verfügbar machen will. Ein einzelnes großes ZIP-Archiv ist zwar ganz praktisch, aber dann muss sich jeder gleich alle Daten runterladen.

Netter ist es, wenn man die Bilder in einen Ordner im Netz hochladen und dort durchsehen kann. Es gibt dafür zahlreiche Tools, auch WordPress hat dafür entsprechende Themes und Plugins. Sehr simpel geht es aber auch mit einer relativ primitiven PHP-Indexierung:

<?php
# Version 1.0
?>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
a {
color: <?php echo $_SESSION[linkfarbe]; ?>;
text-decoration: none;
font-weight: bold;
}
-->
</style>
<?php
# Nur für Bilder
$strDir = '.';
$filelist = scandir($strDir);



foreach ($filelist as $file) {
if ($file != "." && $file != ".." && $file != "index.php") {
$arrFiles[] = $file;
}
}

if ($_GET[file] == "") { $_GET[file] = $arrFiles[0]; }

# Anzeigeroutine
echo "<p align='center'><img src='$_GET[file]' height='40%'>";
# Nächstes Bild im Array herausfinden
$index = array_search($_GET[file],$arrFiles);
$prev = $index - 1;
$next = $index + 1;
echo "<br>$_GET[file]<br>";
if ($arrFiles[$prev] != "") {
echo "<font size='20px'><b><a href='index.php?file=".$arrFiles[$prev]."'>←</a></font></b> ";
}
if ($arrFiles[$next] != "") {
echo "<font size='20px'><b><a href='index.php?file=".$arrFiles[$next]."'>→</a></font></b></font>";
}

echo "</p>";

# Tabelleroutine
echo "<p align='center'><table cellpadding='5' cellspacing='5'><tr><th>Browse</th><th>Size</th><th>Save as</th></tr>";
foreach ($arrFiles as $file) {
if ($file == "index.php" || $file == "." || $file == "..") {} else {
$size = round(filesize($file)/1024);
echo "<tr><td bgcolor='F0F0F0'><a href='index.php?file=$file'>".$file."</a></td><td bgcolor='F0F0F0'>".$size." KB</td><td bgcolor='F0F0F0'><a href='$file' target=_blank>Download</a></td></tr>";
}
}
echo "</table></p>";
?>

Schreib einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.