Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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 :D

Geschrieben

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

Geschrieben

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

Geschrieben

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?

Geschrieben

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.

Geschrieben

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 :D

mfl

Robin

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...