Ordner auslesen und die angezeigten Einträge kürtzen.
Ich lese den Inhalt eines Ordners aus, es handelt sich um Bilder. Diese werden dann als kleine Vorschaubild angezeigt und können durch Anklicken des jeweiligen Vorschaubildes groß angezeigt werden.
Ich lese mittels PHP den Inhalt eines Ordners aus, es handelt sich um Bilder. Diese werden dann als kleine Vorschaubild angezeigt und können durch Anklicken des jeweiligen Vorschaubildes groß angezeigt werden.
Hier ist ein Beispiel: http://www.asien.l-seifert.de/nepal/Familie.html
Ist es möglich, mittels PHP die Liste der angezeigten Bilder zu kürzen, damit nur etwa 5 Bilder vor und 5 Bilder nach dem angezeigten Bild bei den Vorschaubildern angezeigt werden? Der Befehl substr scheint dafür nicht geeignet zu sein.
Vielen Dank für jede Idee.
Viele Grüße von Lothar
Ich lese mittels PHP den Inhalt eines Ordners aus, es handelt sich um Bilder. Diese werden dann als kleine Vorschaubild angezeigt und können durch Anklicken des jeweiligen Vorschaubildes groß angezeigt werden.
Hier ist ein Beispiel: http://www.asien.l-seifert.de/nepal/Familie.html
Ist es möglich, mittels PHP die Liste der angezeigten Bilder zu kürzen, damit nur etwa 5 Bilder vor und 5 Bilder nach dem angezeigten Bild bei den Vorschaubildern angezeigt werden? Der Befehl substr scheint dafür nicht geeignet zu sein.
Vielen Dank für jede Idee.
Viele Grüße von Lothar
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 192556
Url: https://administrator.de/forum/ordner-auslesen-und-die-angezeigten-eintraege-kuertzen-192556.html
Ausgedruckt am: 19.04.2025 um 10:04 Uhr
30 Kommentare
Neuester Kommentar
Die Frage ist Woher das $Bild kommt. Kommt das aus $_GET?
Das wäre noch zu klären.
Ansonsten müsste der Code in etwas so aussehen (ungetestet).
$bild muss jetzt das aktuelle Bild enthalten bzw gesetzt werden. Dazu müsstest du mal in der htaccess schauen welchen Variablennamen du dafür verwendest.
Das wäre noch zu klären.
Ansonsten müsste der Code in etwas so aussehen (ungetestet).
$bild muss jetzt das aktuelle Bild enthalten bzw gesetzt werden. Dazu müsstest du mal in der htaccess schauen welchen Variablennamen du dafür verwendest.
<?php
$bild = ""; // dateiname vom aktuellen Bild
$anz = 5; // vorlauf, nachlauf
$dir = ".";
$dh = opendir($dir);
{
$file = array();
while (false !== ($filename = readdir($dh))){
if ($filename != "." && $filename != "..")
{
$files = $filename;
}
}
sort($files);
$id_cur = array_keys($files, $bild); // index aktuelle bild
// Wenn kein Bild ausgeäwhlt ist oder eines der ersten bilder ausgewählt ist bei 0 anfangen
if(!in_array($bild, $files) || $id_cur <= 5){
$start = 0;
$ende = $anz;
} else {
$start = $id_cur-$anz;
$ende = $id_cur+$anz;
}
$ende = ($ende > count($files)) ? count($files): $ende;
for($i=$start; $i < $ende; $i++)
{
$name = $files[$i];
$name = ereg_replace('.jpg', '', $name);
$bilder = $name;
$name = ereg_replace('-', ' ', $name);
$name = preg_replace( "/(oe)/im", "ö", $name);
$name = preg_replace( "/(ue)/im", "ü", $name);
$name = preg_replace( "/(ae)/im", "ä", $name);
$val=pathinfo($files[$i]);
$val=$val["extension"];
if (($val=="jpg") or ($val=="JPG")){
$var = explode(".", $bilder);
echo "<a class='a' href='$var.html' title='$name'><IMG SRC='$ordner/$files[$i]' alt='$name' style='$border;' width='$width' height='$height'></a> ";
}
}
closedir($dh);
}
?>
Wenn du es so probierst wie ich es geschrieben habe kann er auch nur dir ersten Bilder anzeigen. Die Variable $bild muss gesetzt werden wie du es geschrieben hast.
EDIT: Sorry, ich habe einen kleinen Fehler drin. Zeile 19. Nach der Zeile muss noch dies kommen:
array_keys gibt ein Array zurück und nicht direkt den Key.
EDIT: Sorry, ich habe einen kleinen Fehler drin. Zeile 19. Nach der Zeile muss noch dies kommen:
$id_cur = $id_cur;
Sieht OK aus, das var_dump sollte nicht in die Schleife, darum ist es so lang ;)
An dem Leerzeichen dürfte es nicht liegen.
Ich glaube ich habe den Fehler gefunden:
Ich hoffe das es nun stimmt^^
An dem Leerzeichen dürfte es nicht liegen.
Ich glaube ich habe den Fehler gefunden:
$id_cur = array_keys($files, $bild); // index aktuelle bild
$id_cur = $id_cur;
// Wenn kein Bild ausgeäwhlt ist oder eines der ersten bilder ausgewählt ist bei 0 anfangen
if(!in_array($bild, $files) || $id_cur <= $anz){
$start = 0;
$ende = $id_cur+$anz;
} else {
$start = $id_cur-$anz;
$ende = $id_cur+$anz;
}
if($ende > count($files)) $ende = count($files);
Den Fehler hatten wir oben schon, vergessen mit zu kopieren.
Habe ich korrigiert oben.
Habe ich korrigiert oben.
$id_cur = array_keys($files, $bild); // index aktuelle bild
$id_cur = $id_cur;
// Wenn kein Bild ausgeäwhlt ist oder eines der ersten bilder ausgewählt ist bei 0 anfangen
if(!in_array($bild, $files) || $id_cur <= $anz){
$start = 0;
$ende = $id_cur+$anz;
} else {
$start = $id_cur-$anz;
$ende = $id_cur+$anz;
}
if($ende > count($files)) $ende = count($files);