einfache Bildergalerie

fredolin

Erfahrenes Mitglied
Morgen PHP Gemeinde,

stehe mal wieder etwas auf den Schlauch.. So ich will eine kleine einfache Bildergalerie erstellen.

Hier mal meine Code wie ich die Bilder auslese
PHP:
$thumbs = 'img/galerie/thumbs/';
	$big = 'img/galerie/';
	
	
	$thumbslist = array();
	$thumbsverzeichnis = $thumbs;
	
	$handle = opendir($thumbsverzeichnis);
	$i = 0;
	while ($datei = readDir($handle)){
		if($datei !='.' && $datei !='..' && !is_dir($datei)){
			if(strstr($datei, 'png')){
				$info = getImageSize($thumbsverzeichnis . $datei);
				$th_now[$i] = $datei;		
				$thumbspiclist[] = array('<img src="'.$thumbsverzeichnis . $datei.'" width="'.$info['0'].'" height="'.$info['1'].'" />');
				$i++;
			}
		}
	}
	closeDir($handle);
	//echo $thumbspiclist[1];
	
	
	$biglist =  array();
	$bigverzeichnis = $big;
	
	$handle = opendir($bigverzeichnis);
	$i = 0;
	while ($datei = readDir($handle)){
		if($datei !='.' && $datei !='..' && !is_dir($datei)){
			if(strstr($datei, 'png') || strstr($datei, 'jpg') || strstr($datei, 'jpeg') || strstr($datei, 'gif')){
				$info = getImageSize($bigverzeichnis . $datei);
				$big_now[$i] = $datei;		
				$bigpiclist[] = array('<img src="'.$bigverzeichnis . $datei.'" width="'.$info['0'].'" height="'.$info['1'].'" />');
				$i++;
			}
		}
	}
	closeDir($handle);

so und nun will ich diese beiden Array zusammenführen um dann wenn man auf das Thumbs klickt das große Bild sich öffnet
Hier mein Code
PHP:
foreach($thumbspiclist AS $key => $value){
		$i=0;
		echo '<li><a href="'.$bigpiclist.'" border="0">'.$value[$i].'</a></li>';
		$i++;
	}
Auch habe ich versucht mit "array_merge" die Arrays zusammen zu legen. Aber wie bekomme ich dann es hin, das ich auf das kleine Bild klicke und das große Bild öffnet sich?

Bedanke mich vorab für eure Hilfe

Gruß
Frediolin
 
Machs doch über eine for-Schleife, wenn die Arrays gleich groß sind und die Bilder denselben Index haben.

PHP:
for($i=0;$i<sizeof($array);$i++)
{
    //dein Code
}

Oder noch einfacher: Setz den kompletten <a>-Tag schon oben zusammen, inkl. Thumbnail.
 
Ich glaube Lime meint das was ich auch denke.

Warum machst du zwei Schleifen. Setze es doch in eine.
Dann gibtst du, statt nur das <img></img>, gleiches alles zusammen aus.
PHP:
$thumbspiclist[] = array('
<li>
  <a href="'.$bigpiclist.'" border="0">
    <img src="'.$thumbsverzeichnis . $datei.'" width="'.$info['0'].'" height="'.$info['1'].'" />
  </a>
</li>
');
 
Hallo Grillfleisch,

danke für deine Antwort. Aber wenn ich das so einbaue, bekomme ich ne Fehlermeldung das "$bigpiclist" nicht existiert.

$bigpiclist erstelle ich aber erst in der 2 Schleife. Wo habe ich meinen Denkfehler?

Danke an Euch allen

Gruß
Fredolin
 
Das war auch nur ein Beispiel, so wie ich es geschrieben habe kann es nicht funktionieren.
Mit zwei getrennten whileschleifen wird das glaube ich auch nicht funktionieren.

Haben die thumbbilder und die großen Bilder den selben namen?
 
wenn die namen gleich sind, versuch es mal so...

PHP:
    $thumbs = 'img/galerie/thumbs/';
    $big = 'img/galerie/';
    
    
    $thumbslist = array();
    $thumbsverzeichnis = $thumbs;
    
    $bigverzeichnis = $big;
    
    $handle = opendir($thumbsverzeichnis);
    $i = 0;
    while ($datei = readDir($handle)){
        if($datei !='.' && $datei !='..' && !is_dir($datei)){
            if(strstr($datei, 'png') || strstr($datei, 'jpg') || strstr($datei, 'jpeg') || strstr($datei, 'gif')){
                $info_thumb = getImageSize($thumbsverzeichnis . $datei);
                $info_big = getImageSize($bigverzeichnis . $datei);
                
                $th_now[$i] = $datei;        
                $thumbspiclist[] = array('<a href="'.$bigverzeichnis . $datei.'" ><img src="'.$thumbsverzeichnis . $datei.'" width="'.$info['0'].'" height="'.$info['1'].'" /></a>');
                $i++;
            }
        }
    }
    closeDir($handle);

Ich kann das nicht richtig testen, da ich keine Bilder habe.
Versuche mal alles in nur eine Schleife zu bekommen.
 
Zurück