Veröffentlicht 26. Juni 200619 j Ich möchte gerne alle Bilder aus einem Ordner auf einer Webseite anzeigen lassen. Zur Zeit mach ich das noch so: <img src="ordner/1.gif"> <img src="ordner/2.gif"> <img src="ordner/3.gif"> ... Geht doch sicherlich auch einfacher
26. Juni 200619 j Mit PHP Einfach das Verzeichnis lesen und die gefundenen Dateien überprüfen ob es bilder sind (Endung .jpg .png etc.) und dann einfach ausgeben.
26. Juni 200619 j Mhh.. Wisst ihr was mir grade so auffällt? Hier sind erschreckend viele andere Nürnberger ... Achso, ja zu deinem Problem; hier mal ein Ansatz: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="de"> <?php $titel='Meine Fotogalerie'; // Titel der Galerie $bilddatei='bild.txt'; // Datei mit den Bildinformationen $bildpfad='bilder'; // Unterverzeichnis, das die Bilder enthält $iconpfad='minibilder'; // Unterverzeichnis, das die Vorschaubilder enthält $grossbildpfad=''; // Falls nicht '', wird bei Klick auf Bild eine große Version aus diesem Verz. geladen $spalten=5; // Anzahl der Spalten in der Übersichtstabelle $faktor=5; // Verkleinerungsfaktor für die Icons $bildpraefix=''; // evtl. ein Präfix für alle Dateinamen $bildsuffix='.jpg'; // Dateiendung aller Bilder $prev=''; // Seite vor der Galerie $next=''; // Seite hinter der Galerie $up=''; // Übergeordnete Seite // -------- Ab hier nur mit Vorsicht ändern ------- $dir=''; $n=''; $letztesbild=''; $qs=$QUERY_STRING; //parse_str($QUERY_STRING); // Übernimmt den Bildnamen, falls übertragen import_request_variables('g',''); $dateiname=basename($_SERVER['PHP_SELF']); $qs=str_replace('letztesbild=ja','',$qs); $qs=str_replace('&&','&',$qs); $qs=ereg_replace('(^|&)n=[^&]*','',$qs); $qs=ereg_replace('^&','',$qs); if($qs){$pdateiname=$dateiname.'?'.$qs;} else{$pdateiname=$dateiname;}; $zusatztexte=3; // Anzahl der Zusatztexte $nr=0; $einzel=false; // falsch-Übersicht über alle Bilder $gbild=false; if($dir!=''){$dir=$dir.'/';}; $bilddatei=$dir.$bilddatei; $bildpfad=$dir.$bildpfad; $iconpfad=$dir.$iconpfad; if($grossbildpfad!=''){$gbild=true;}; $grossbildpfad=$dir.$grossbildpfad; $d=array(array("","","","","","","")); // liest die Bildbeschreibungsdatei aus if(file_exists($bilddatei)) { $f=fopen($bilddatei,'r'); if($f) { while (!feof($f)) { $test=fgetcsv($f,32000,chr(167)); if($test[0]!=''){array_push($d,$test);}; }; fclose($f); }; $max=count($d)-1; //Anzahl der Bilder if($letztesbild=='ja'){$n=$d[$max][0];}; if($n!=''){for($i=1;$i<=$max;$i++){if($n==$d[$i][0]){$einzel=true;$nr=$i;};};}; //bestimmt die Nr. des aktuellen Bildes if ($einzel){ // Initialisiert Daten für Einzelbildanzeige $beschreibung=$d[$nr][3]; $width=$d[$nr][1];if($width > 0){$width=' width="'.$width.'"';}else{$width='';}; $height=$d[$nr][2];if($height > 0){$height=' height="'.$height.'"';}else{$height='';}; $name=rawurlencode($d[$nr][0]); $zusatz=array(''); for($i=4;$i<$zusatztexte + 4;$i++){array_push($zusatz,$d[$nr][$i]);}; if($nr<$max){ $nname=$d[$nr+1][0]; $nachbeschreibung=$d[$nr+1][3]; $next=$dateiname.'?n='.$nname.(($qs=='') ? '' '&'.$qs)); } else{ }; if($nr>1){ $vname=$d[$nr-1][0]; $vorbeschreibung=$d[$nr-1][3]; $prev=$dateiname.'?n='.$vname.(($qs=='') ? '' '&'.$qs));;} else{$prev=$pdateiname;}; $up=$pdateiname; $stitel=$titel.' - '.$beschreibung; } else { // Initialisiert Daten für die Übersicht $beschreibung=''; $stitel=$titel; $next=$d[1][0];$next=$dateiname.'?n='.$next.(($qs=='') ? '' '&'.$qs)); }; ?> <head> <title><?php echo $stitel; ?></title> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> <meta name="description" content="<?php echo $beschreibung; ?>"> <meta name="keywords" content=""> <?php if($prev!='') { ?> <link rel="prev" href="<?php echo htmlentities($prev);?>"> <?php }; if($next!='') { ?> <link rel="next" href="<?php echo htmlentities($next);?>"> <?php }; if($up!='') { ?> <link rel="up" href="<?php echo htmlentities($up);?>"> <?php }; ?> <?php if($einzel) { ?> <link rel="section" href="<?php echo htmlentities($pdateiname);?>" title="<?php echo $titel;?>" ><?php };?> <link rel="stylesheet" type="text/css" href="stil.css" title="Standard"> </head> <body id="galerie"> <h1><?php echo $titel; ?></h1> <?php if($einzel){echo' <h2>'.$beschreibung.'</h2>';} ?> <?php if ($einzel) { // Anzeige des einzelnen Bildes echo ' <div class="bild"> '; if($gbild){ echo ' <a href="'.$grossbildpfad.'/'.$bildpraefix.$name.$bildsuffix.'"> '; }; ?> <img src="<?php echo $bildpfad.'/'.$bildpraefix.$name.$bildsuffix;?>" alt="<?php echo $beschreibung; ?>" <?php echo $width.$height; ?>> <?php if($gbild){echo ' </a>'; ?> <br><span>Für größere Version auf Bild klicken.</span> <?php }; echo ' </div> <div class="zusatz">'; if($zusatz[1]!=''){echo ' <p class="zusatz1">'.$zusatz[1].'</p>';}; if($zusatz[2]!=''){echo ' <p class="zusatz2">'.$zusatz[2].'</p>';}; if($zusatz[3]!=''){echo ' <p class="zusatz3 minitext">'.$zusatz[3].'</p>';}; echo ' </div> <div class="extra"> <p class="bildzahl">Bild '.$nr.' von '.$max.' </p> <p class="bildnavig">'; if($nr > 1){echo ' <a href="'.$dateiname.'?n='.$vname.(($qs=='') ? '' '&'.htmlentities($qs))).'" title="'.$vorbeschreibung.'">vorheriges Bild</a> ·';}; echo ' <a href="'.$pdateiname.'">Übersicht</a>'; if($nr < $max) {echo ' · <a href="'.$dateiname.'?n='.$nname.(($qs=='') ? '' '&'.htmlentities($qs))).'" title="'.$nachbeschreibung.'">nächstes Bild</a>';}; echo ' </p> </div>';} else { //Anzeige der Übersicht echo ' <div> <table summary="Tabellarische Übersicht der Bilder" class="fotos">'; $row=floor($max / $spalten); if ($row<1){$bild=0;}; for ($i=0;$i<$row;$i++){ //Tabellenzeile echo ' <tr>'; for ($j=1;$j<=$spalten;$j++){ // Tabellenzelle $bild=$spalten*$i+$j; $name=rawurlencode($d[$bild][0]); $width=round($d[$bild][1]/$faktor);if($width>0){$width=' width="'.$width.'"';}else{$width='';}; $height=round($d[$bild][2]/$faktor);if($height>0){$height=' height="'.$height.'"';}else{$height='';}; // Icons sind 1/faktor des Originalbildes $beschreibung=$d[$bild][3]; echo ' <td><a href="'.$dateiname.'?n='.$name.(($qs=='') ? '' '&'.htmlentities($qs))).'" title="'.$beschreibung.'">'; ?> <img src="<?php echo $iconpfad.'/'.$bildpraefix.$name.$bildsuffix;?>" alt="<?php echo $beschreibung;?>" <?php echo $width.$height;?>><?php echo '</a></td>';?> <?php }; echo ' </tr>' ; }; if ($bild<$max){ //letzte Tabellenzeile wird extra erzeugt $rest=$spalten-$max+$bild; echo ' <tr>'; for ($bild=$bild+1;$bild<=$max;$bild++){ $name=rawurlencode($d[$bild][0]); $width=round($d[$bild][1]/$faktor);if($width>0){$width=' width="'.$width.'"';}else{$width='';}; $height=round($d[$bild][2]/$faktor);if($height>0){$height=' height="'.$height.'"';}else{$height='';}; // Icons sind 1/faktor des Originalbildes $beschreibung=$d[$bild][3]; echo ' <td><a href="'.$dateiname.'?n='.$name.(($qs=='') ? '' '&'.htmlentities($qs))).'" title="'.$beschreibung.'">'; ?> <img src="<?php echo $iconpfad.'/'.$bildpraefix.$name.$bildsuffix;?>" alt="<?php echo $beschreibung;?>" <?php echo $width.$height;?>><?php echo '</a></td>';?> <?php }; echo ' <td colspan="'.$rest.'"></td> </tr>'; //leere Zelle umfaßt restliche Zellen }; echo ' </table>'; echo ' </div>'; }; ?> </body> <?php } else { ?> <head> <title><?php echo $stitel; ?></title> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> <meta name="description" content="<?php echo $beschreibung; ?>"> <meta name="keywords" content=""> <?php if($prev!='') { ?> <link rel="prev" href="<?php echo htmlentities($prev);?>"> <?php }; if($next!='') { ?> <link rel="next" href="<?php echo htmlentities($next);?>"> <?php }; if($up!='') { ?> <link rel="up" href="<?php echo htmlentities($up);?>"> <?php }; ?> <link rel="section" href="<?php echo htmlentities($pdateiname);?>" title="<?php echo $titel;?>" > <link rel="stylesheet" type="text/css" href="stil.css" title="Standard"> </head> <body id="galerie"> <h1>Fehler</h1> <p>Die Datei <em><?php echo $bilddatei;?></em> mit den Bilddaten konnte nicht geöffnet werden.</p> </body> <?php }; ?> </html> [/code] Hab' ich vor lange Zeit mal gemacht, schrecklicher Codestil, usw. Hoffe das tut's trotzdem mfl Robin
26. Juni 200619 j Mhh, ok.. Dann würde ich mir eben irgend einen Scriptinterpreter lokal installieren und halt einfach alles in eine html-Datei ausgeben, sollte doch kein Problem sein. Wenn du Linux benutzt habe ich hier fertige Shellscripte die dir das machen, wenn du Windows benutzt musst du dich leider selber umschauen, aber ich wette, dass es da einige Freewareprogramme gibt mfl Robin
26. Juni 200619 j ach ich find den link grad nicht, aber man kann die "index of" seite, die der apache ausgibt, doch anpassen. jetzt wärs interessant ob ich da bilder nicht als link sondern als bild selber ausgeben kann?
26. Juni 200619 j Webspace hat keine PHP-UnterstützungEs muss nicht zwangsläufig PHP sein, aber irgendeine serverseitige Sprache wirst du verwenden müssen.
26. Juni 200619 j Mhh, gute Idee, aber leider nicht Möglich.. Du kannst zwar Header und Footer setzen (wie ich es hier auch machen) und die Icons ändern, aber Thumbnails erstellt der mod_autoindex dir (zumindest ohne ein extra Modul) nicht. Quelle mfl Robin
26. Juni 200619 j Hrm *durch Haare fahr* Es muss nicht zwangsläufig PHP sein, aber irgendeine serverseitige Sprache wirst du verwenden müssen. Quark. mfl Robin
26. Juni 200619 j Wenn man den Header der AutoIndex Dings selber definieren kann, dann kann ich doch n Javascript verwenden welches die Index Of Daten ausließt und beim finden eines Bildes die entsprechenden Tags setzt. Alternativ kann ich natürlich mit Javascript auch alle Elemente der Seite entfernen und somit wirklich nurnoch die Bilder anzeigen. Aber um da genaueres sagen zu können reicht mein Javascript wissen nicht aus.
26. Juni 200619 j LOL! Das ist genauso krank wie genial! Klaro, die Indexes vom Apache haben 'nen ordentlich DOM-Baum. Möglich ist es also auf jeden Fall. Nur ob es wirklich die Methode ist, die man will ist fraglich. Aber SNOWMAN++ für die geekige Idee mfl Robin
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.