Ich habe hier eine Bildergalerie geschrieben, allerdings funktioniert die Sortierung nicht. Statt 1,2,3 wird 1,10,11 ausgegeben. Mit natsort() habe ich es schon probiert und das Forum hier habe ich danach auch schon abgesucht allerdings habe ich nichts passendes gefunden.
Die Bilder sind alle fortlaufend nummeriert. Also Bild1.jpg, Bild2.jpg,... Die Ausgabe der Bilder ist kein Problem und es wird alles so dargestellt wie es sein soll. Das einzige Problem ist die Sortierung der Bilder. Das heißt statt Bild1.jpg, Bild2.jpg wird Bild1.jpg, Bild10.jpg, Bild11.jpg ausgegeben.
Ich hoffe jemand kann mir bei meinem Problem helfen.
Hier der Code
Die Bilder sind alle fortlaufend nummeriert. Also Bild1.jpg, Bild2.jpg,... Die Ausgabe der Bilder ist kein Problem und es wird alles so dargestellt wie es sein soll. Das einzige Problem ist die Sortierung der Bilder. Das heißt statt Bild1.jpg, Bild2.jpg wird Bild1.jpg, Bild10.jpg, Bild11.jpg ausgegeben.
Ich hoffe jemand kann mir bei meinem Problem helfen.
Hier der Code
PHP-Code:
<?php
// ordner festlegen
$pfad = "ordner/";
$tpfad = $pfad."thumbs/";
// bilder array
$bilder = array();
// thumbs durchsuchen
$handle=opendir($tpfad);
while($file=readdir($handle)) {
if(preg_match("/.(jpg)$/i", $file)){
$bilder[] = $file;
}
}
closedir($handle);
natsort($bilder);
//Wieviele bilder?
$maximal = "35";
//Bilder im Array zählen
$gesamt = count($bilder);
// Variable in URL kontrollieren
if($_GET['seite'] == "" || !is_numeric($_GET['seite']) || $_GET['seite']>ceil($gesamt/$maximal))
{
$start = 0;
}
else
{
$start = $_GET['seite'] * $maximal;
}
//Letztes Bild der Anzeige
$end=$start+$maximal;
//gibts das?
if($end>$gesamt)$end=$gesamt;
//aktuelle Seite mit 35 bildern ausgeben
for($x=$start;$x<$end;$x++)
{
if($bilder[$x] == '')
{echo ""; }
else
{
//Infos zu den Bildern
$info = getimagesize($pfad.$bilder[$x]);
$size = number_format(round(filesize($pfad.$bilder[$x])),0);
$breite = $info[0];
$laenge = $info[1];
echo '<div class="img"><a href="'.$pfad.$bilder[$x].'" target="_blank" >
<img src="'.$tpfad.$bilder[$x].'" width="100" height="100"></a>#
<div class="titel">'.$breite.'x'.$laenge.'<br>'.$size.' KB</div></div>
'; }
}
//Seiten
echo "<br/>";
//Seitenzahl rausfinden
$seiten=ceil($gesamt/$maximal);
if($seiten>1)
{
//Links ausgeben
for($x=1;$x<=$seiten;$x++)
{
$y = $x -1;
echo "<a href=".$_SERVER['PHP_SELF']."?seite=".$y.">Seite ".$x."</a> ";
}
}
?>
Kommentar