URL: https://www.overclockers.at/coding-stuff/eine_php_frage_noch_bilder_aus_ordner_anzeigen_166814/page_1 - zur Vollversion wechseln!
Ok, ich hab in letzter Zeit viel gefragt, ich weiß... ich danke euch auch für die große Hilfe. Ich bin grad dabei 2 Webseiten zu machen und da ich das schon sehr lang nimmer gemacht hab und die pages doch etwas aufwändiger sind (von der Gestaltung) bitte ich euch um Mithilfe beim coden, das erspart mir stundenlange recherche im netzt die, wie in diesem fall noch nichtmal ein brauchbares Ergebnis gebracht hat...
Folgende Aufgabe:
Ich möchte eine Art Galerie realisieren, die soll folgendermaßen aussehen
1. klickt man auf "fotos" dann sollte eine Liste aller Galerien erscheinen und zwar in einer Tabelle die man von links nach rechts scrollen kann, jede Galerie soll 1 preview Bild haben und darunter soll der galeriename (ordnername) stehen
2. klickt man auf die jeweilige galerie in der liste soll ein 2. fenster geöffnet werden in dem alle VORSCHAUBILDER aus dem zugehörigen Galerieordner angezeigt werden (das Fenster sollte ebenfalls nur von links nach rechts scrollen und eine fixe größe haben
3. klickt man auf eines der Vorschaubilder sollte sich das zugehörige Originalbild in einem eigenen Fenster öffnen (die Bilder liegen wiederum in einem eigenen Ordner).
Ordneraufbau: galeriename/thumbs/ u. galeriename/original/
Die Inhalte sind variabel, lediglich die Größe der Bilder ist schon berechnet (also thumbs haben eine gewisse max. Höhe und die Originale sind auf max 800 px breite gerechnet).
So ich hoffe mein Problem ist soweit verständlich, falls mir da jemande nen Tipp oder ein paar passende codeschnippel geben kann wär ich wirklich dankbar dafür! Wenn ihr mehr Angaben braucht nur sagen.
tia
nighty
Hallo,
Bezüglich der Ausgabe der einzelnen Kategorien kannst du mit opendir() und readdir() einfach das Verzeichnis in einer Schleife durchgehen und nach einer Prüfung mit is_dir() den entsprechenden Namen zurückgeben.
Beispiele dazu findest du zum Beispiel hier in den Kommentaren.
Die Ausgabe des Preview-Bildes ist natürlich davon abhängig, wie dieses abgelegt wird. Ist dieses seperat abgelegt oder soll ein bestimmtes oder zufälliges Bild aus der Galerie ausgegeben werden?
zu 2:
Den Kategorienamen kannst du beispielsweise als GET-Parameter an ein PHP-Script übergeben (gegebenenfalls mit urlencode()).
Nachdem du überprüft hast, ob auch ein gültiger Galeriename übergeben wurde (bspw. mit preg_match() und is_dir()) ist das weitere Vorgehen dann eigentlich das selbe wie beim ersten Punkt, nur dass es dieses mal nicht um Verzeichnisse geht. Gegebenenfalls kannst du mit getimagesize() noch überprüfen, ob es sich bei den Dateien auch wirklich um ein Bild handelt.
zu 3:
Hierbei gehe ich einfach einmal davon aus, dass der Bildname mit dem des Vorschaubild übereinstimmt. In diesem Fall kannst du diesen auch einfach per GET-Parameter übergeben und gegebenfalls nach einer Überprüfung (bspw. mit preg_match() , is_file() und gegebenenfalls wieder getimagesize()) diesen mit dazugehöriger Pfadangabe in einem img-Tag ausgeben.
MfG mh1001
huch, das ist viel php auf einmal
also readdir usw. hab ich mir schon gedacht nur wie ich das genau mach weiß ich noch nicht, ich kenn wohl die einzelnen funktionen aber ich bin einfach nicht zum coden geschaffen, ich kapier eben meistens nicht wie das dann (vorallem mit- und ineinander) funktioniert.
also mit opendir mach ich mein verzeichnis auf, mit readdir les ich es aus also z.b. erst mal den galerie ordner, den les ich mit readdir aus, oder? dann sollt ich z.b. galerie 1 - 5 rausbekommen weil meine ordner z.b. so heißen. Soweit ist es noch einigermaßen klar nun soll aber in einer Zelle 1. der ordnername (also galeriename) als textausgebenen werden und dazu das preview bild (dieses heißt immer prev.jpg und liegt direkt im galerie_n ordner.
Das wär mal also die erste hürde 
Nun sollt man es anklicken können und dann soll ein fenster öffnen, darin wird dann mit open u. readdir der jeweilige thumbnailordner geöffnet, also wwi z.b. /galerie/galerie_1/thumbnail und dessen Inhalt soll dann in einer zelle ausgegeben werden (also die bilder) in dem fall ohne text.
Und zum schluss soll dann beim anklicken eines bildes das originalbild geladen werden, dieses liegt im ordner /galerie/galerie_1/original
Das macht mir die meisten sorgen, wie kann ich sicherstellen dass auch das richtige original geladen wird? Müssten die dazu gleich heißen oder wie kann man das machen?
Pff. ich sollt das echt mal ernsthaft lernen, bin aber glaub ich einfach nicht der typ dafür, das macht mich immer ganz ... waa. 
danke!
schau dir den code von "tom's galerie" auf http://www.tomshaus.de/ an. der macht genau das. auslesen von verzeichnis, anlegen von thumbs zu jedem bild, dynamischer aufbau der galerie anhand der verzeichnisstruktur, browsen, resizen usw.
hth
thx, das könnt nützen, am besten gehts eh mit learning by doing, wenn ich mal die schnippel hab kann ichs meistens eh zusammenstoppeln wie ichs brauch.
ich meld mich wenn ich fragen hab 
Alternative zu opendir() etc.: Class Dir verwenden.
Hallo,
nun brauch ich nochmal eure Hilfe...
Ich hab nun mein Bilder Script soweit fertig bis auf EIN Problem!!!
Meine Thumbnails sind (klarerweise) verzerrt... momentan werden die einfachh nur per
Code: PHP$bilder[] = '<img src="'.$pfadbild.'' . $bild . '" class="rahmen" width="160" height="120">';
Vielleicht kannst du das ganze so lösen? ...
mein vorschlag so hab ichs auf meiner page
Code: PHP# table settings for images display define('ROWS', 3); define('COLS', 3); # thumbnail demensions define('THMBWIDTH', 100); define('THMBHEIGHT', 100); # gallery title define('TITLE', "deinname"); // display thumbnails function display_thumbnails($imgs) { global $file, $start, $section; $total = count($imgs); // get rid of redundant table rows $math = count(array_slice($imgs, $start, $section)) / COLS; $rows = is_int($math) ? $math : ceil($math); navigate_images($total); print('<table id="display_thumbnails" cellpadding="0" cellspacing="0">'."\r\n"); for($i = 0; $i < $rows; $i++) { print('<tr>'); for($n = 0; $n < COLS; $n++) { $index = $start++; $image = $index < $total ? $imgs[$index] : ' '; print('<td style="width: '. THMBWIDTH .'px; height: '. THMBHEIGHT .'px;">'."\r\n"); if($image != ' ') { $imgloc = rawurlencode($file.'/'.$image); print('<a href="gallery.php?src='.$imgloc.'&size=full">'); print('<img src="gallery/imgsrc.php?src='.$imgloc.'" alt="'.$image.'" />'); print('</a>'."\r\n"); } else echo $image; print('</td>'); } print('</tr>'."\r\n"); } print('</table>'."\r\n"); navigate_images($total); }
Ob ich das in mein bestehendes Scribt bringe? Ich bin ja nicht so der Experte auf dem Gebiet 
Zitat von Nightstalkermomentan werden die einfachh nur perCode: PHP$bilder[] = '<img src="'.$pfadbild.'' . $bild . '" class="rahmen" width="160" height="120">';
erzeugt, das isteinfach aber eben nicht gut.

ZitatHab schon ein paar Ansätze aber nix womit ich fertig geworden wäre... hm.
Naja eigentlich wollte ich es OHNE eigene Thumbs machen, also einfach nur "verkleinert" darstellen, sehr zu deinem Leidwesen 
Grund ist der dass es einfach zu bedienen sein soll, d.h. man soll später per Ordnerupload einfach eine komplette Galerie erstellen können ohne sich um Thumbs gedanken machen zu müssen. Das funktioniert imho aber nicht anders oder doch?
Naja, es funktioniert auch so, dass du die Bilder bei jeden request verkleinern lässt.
das heißt? und geht wie?
Beispiel: http://uk.php.net/manual/en/functio...ejpeg.php#61938
Das klingt gut, nun aber noch eine kleine Frage...
in meinem Script werden die Bilder von denen Thumbs erzeugt werden erst ausgelesen aus dem Ordner und dann in ein Array übergeben, wie bekomm ich das geregelt.
Würd es reichen
Code: PHP<img src= "thumb.php?src=$files&wmax=150&hmax=100&quality=90&bgcol=FF0000"> </img>

overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026