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
 

Neue Beiträge

Zurück