Bilder aus Ordner auslesen und darstellen

_root

Erfahrenes Mitglied
Hi.

Ich habe hier nen kleines Script welches Bilder aus einem Ordner darstellt.
PHP:
<?php
  $ordner = "./";
  foreach (glob("$ordner/*.jpg") as $filename) {
  	echo " <a href=\"$filename\"><img src=\"$filename\" width=\"157\" height=\"135\" border=\"0\"></a>\n";
  }
?>

Bisher klappt das immer nur mit einem Bildformat. Bekomme es einfach nicht hin das es
*.jpg, *.jpeg, *.png, *.gif darstellt.

Ausserdem habe ich versucht einzubaun, das er immer 2 Bilder in einer Zeile darstellt und dann nen <br /> macht. Klappt zwar, is aber denke ich nicht das Optimale.
Hier das Script mit meinem Versuch

PHP:
<?php
$ordner = "./";
$i = 0;
foreach (glob("$ordner/*.jpg") as $filename) {
	if ($i >= 1) {
		echo " <a href=\"$filename\"><img src=\"$filename\" width=\"157\" height=\"135\" border=\"0\"></a><br />\n";
		$i++;
		$i = 0;
	}
	else {
	echo " <a href=\"$filename\"><img src=\"$filename\" width=\"157\" height=\"135\" border=\"0\"></a>\n";
		$i++;
	}
}
?>

Bitte um Hilfe.

Danke schonmal aCid
 
Probier mal Folgendes:
PHP:
<?php

	$dir = './';
	echo '<ul class="gallery">';
	foreach( glob($dir.'*.{gif,jpg,jpeg,png}', GLOB_BRACE) as $filename ) {
		echo '<li><a href="'.$filename.'"><img src="'.$filename.'"></a></li>';
	}
	echo '</ul>';

?>
Anschließend formatierst du das Ganze mit CSS, beispielsweise wie folgt:
Code:
.gallery {
	list-style:		none;
	margin:			0;
	padding:		0;
}
.gallery li {
	float:			left;
	width:			50%;
}
.gallery * {
	display:		block;
}
 
Das hat ganz gut geklappt. Danke dafür.
Ich habe jetzt nen bisschen weitergespielt, und versuche folgende:
Wenn die Breite größer als die Höhe ist sollen die Masse anderst sein als wenn die Höhe größer als die Breite ist.

PHP:
<table width="200" border="0">

<?php
    $dir = './';
    foreach( glob($dir.'*.{gif,jpg,jpeg,png}', GLOB_BRACE) as $filename ) {
		$groesse=getimagesize($filename);
		$breite = $groesse[0];
		$hoehe = $groesse[1]; 
		$test = $groesse[2]; 
		if ($breite <= $hoehe) $verhaeltnis = 0;
		elseif ($hoehe <= $breite) $verhaeltnis = 1;
		#echo $verhaeltnis;
        if ($verhaeltnis = 1) {
		echo '
			<tr>
   			 <td><a href="'.$filename.'"><img src="'.$filename.'"	width="100" height="70" border="0";></a></td>
    			<td>
					<div align="left">
						Name:&nbsp;'.$filename.'<br />
						Breite: '.$breite.'<br />
						Höhe: '.$hoehe.'<br />
					</div>
				</td>			
			</tr>';
		}
		else {
		echo '
			<tr>
   			 <td><a href="'.$filename.'"><img src="'.$filename.'"	width="70" height="100" border="0";></a></td>
    			<td>
					<div align="left">
						Name:&nbsp;'.$filename.'<br />
						Breite: '.$breite.'<br />
						Höhe: '.$hoehe.'<br />
					</div>
				</td>			
			</tr>';
		}
    }
?> 

</table>
 
Der Ausdruck wird deshalb (wahrscheinlich) immer wahr sein, da es sich dabei um eine einfache Zuweisung handelt und keinen – wie bestimmt gewollt – einen Vergleich.
 
Ich bin ein Trottel ^^
das mit dem "==" war es =)

Ich lasse das Thema nochmal offen (nicht erledigt) da ich mit Sicherheit noch die eine oder andere Frage haben werde. Danke an alle die bisher geholfen haben.

MfG aCid
 
Zurück