Bilderausgabe sortieren

danke, so funktionierts

PHP:
<?php 
	
$dir    = opendir($imagepath);
$files  = array();

while ($file = readdir ($dir))
	{
 	if ($file != "." AND $file != "..")
  	$files[] = $file;
	}
	
closedir($dir);
natsort($files); 

	foreach($files AS $file)
    	{   
		echo "<a href='$imagepath/$file' rel='lightbox[Bild]' title='$file'><img src='$imagepath/file' alt='$file' width='140' hspace='15' vspace='15' border='0'></a>";
        }
		
?>

jetzt wärs noch toll wenn Dateien die kein bild sind ignoriert werden, wie bei meinem ersten code. es kommt ab und an vor das auch andere Endungen vorhanden sind
 
Zuletzt bearbeitet:
Mit getimagesize() kannst du prüfen, ob die jeweilige Datei ein Bild ist. Eigentlich sollte man die Funktion nur auf Bilder loslassen, da sie bei anderen Dateitypen einen Fehler in Form eines Warnings liefert. Das kannst du mittels des @-Operators unterdrücken, da du ja davon ausgehst, dass auch Dateien dabei sind, bei denen es sich um kein Bild handelt. Wenn im zurückgegebenen Array an Index 2 ein integerer Wert zwischen >= 1 und <= 16 handelt, ist es sehr wahrscheinlich ein Bild. Der Code dafür könnte so aussehen:

PHP:
foreach($files AS $file)
{
  $imageInfo = @getimagesize($file);
  if( isset($imageInfo[2]) && intval($imageInfo[2]) >= 1 && intval($imageInfo[2]) <= 16 )
  {
    echo "Datei $file als Bild identifiziert<br/>";
  }
}
 
@saftmeister, danke für deinen vorschlag hat mich auf folgendes gebracht

PHP:
<?php 
	
$dir    = opendir($imagepath);
$extensions = array("jpg", "gif", "jpeg", "png", "JPG");
$files  = array();

while ($file = readdir ($dir))
	{
 	if ($file != "." AND $file != "..")
  	$files[] = $file;
	}
	
closedir($dir);
natsort($files); 

	foreach($files AS $file)
    	{
		if(in_array(pathinfo($file, PATHINFO_EXTENSION), $extensions))
            {
 			echo "<a href='$imagepath/$file' rel='lightbox[Bild]' title='$file'><img src='$imagepath/$file' alt='$file' width='140' hspace='15' vspace='15' border='0'></a>";
			}
        }
		
?>

funktioniert wie ichs wollte, lösung gefunden
 

Neue Beiträge

Zurück