php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.10.2009, 08:47  
Neuer Benutzer
 
Registriert seit: 06.09.2009
Beiträge: 6
PHP-Kenntnisse:
Fortgeschritten
evilbrot befindet sich auf einem aufstrebenden Ast
Standard PHP Gallery - Thumbnails dynamisch erstellen

Hallo zusammen,

ich hab mir mal ein kleines Gallery Script zusammengebastelt bei dem die Thumbnails dynamisch erzeugt werden sollen, da ich an Verschiedenen stellen unterschiedliche Thumbnailgrößen brauche und die immer statisch zu erstellen is mir einfach zu viel arbeite

Nun hab ich also ne Datei namens viewThumbs.php an die ich ne Bilder oder Album ID übergeben und das Thumbnail erstellt wird. Nun hab ich mich aber gerfragt wie ich das am besten realisiere, dass aus der ID wieder der Dateiname des original Bildes ermittelt wird. Ich hab da erstmal zwei möglichkeiten gefunden.

Einmal über die Datenbank, über die ich den Dateinamen wieder abfragen könnte. Allerdings erzeugt das ja bei großen Bilderalben (machne haben 200 Bilder oder mehr) ne menge Statements. Daher dachte ich mir ich könnte auch einfach die Dateinamen -> ID zuordnung in die Session schreiben wenn ein Album ausgewählt wird, und in meiner viewThumbs.php les ich das einfach wieder aus.

Nun weiß ich nicht welche Methode sinnvoller ist ^^ Gibt es vielleicht sogar noch andere? Wie macht man sowas normalerweise?


grüße

evilbrot
evilbrot ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.10.2009, 08:50  
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.846
HPR1974 wird schon bald berühmt werden
Standard

warum erzeugt das ne menge statements?
HPR1974 ist offline  
Alt 15.10.2009, 09:17  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.071
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Du speicherst die Thumbnails aber auch auf dem Server ab, oder? Das hört sich jetzt fast so an als würdest du bei jedem Aufruf die Vorschaubilder erstellen wollen!

Dein Problem kann ich jetzt gar nicht nachvollziehen und deinen Methoden erschließen sich mir daher auch nicht!
__________________
HalloPHP
Asipak ist offline  
Alt 15.10.2009, 09:50  
Neuer Benutzer
 
Registriert seit: 06.09.2009
Beiträge: 6
PHP-Kenntnisse:
Fortgeschritten
evilbrot befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von HPR1974 Beitrag anzeigen
warum erzeugt das ne menge statements?
Naja wenn ich 300 Bilder in einem Album hab und für jedes Bild nen Thumbnail erstelle und ich den benötigten Dateinamen über die ID aus der DB ziehe dann hau ich ja auch 300 Statements raus...



Zitat:
Zitat von Asipak Beitrag anzeigen
Du speicherst die Thumbnails aber auch auf dem Server ab, oder? Das hört sich jetzt fast so an als würdest du bei jedem Aufruf die Vorschaubilder erstellen wollen!
Momentan läuft es auch noch so ab, dass die Bilder bei jedem Aufruf erstellt werden. Ich überprüfe lediglich ob das Bild schon beim User im Cache liegt und gebe dann halt nur nen 304 Code zurück. Wenn nicht, wird ein Thumbnail erstellt und angezeigt.
Das ich das Thumbnail auch auf dem Server speichern sollte wenn ichs einmal erstellt hab ist klar, soweit bin ich aber noch nicht.

Ich hatte das egtl. so gedacht das mein viewThumbs.php aufgerufen wird und das Script überprüft ob ein Thumbnail schon auf dem Server vorhaden ist. Wenn nicht soll es erstellt werden, ansonsten leite ich die anfrage einfach über den "Location:" Header auf das Bild um.

So, nun brauch ich aber zum erstellen des Thumbs den Dateinamem des original Bildes. Und da wären wir wieder bei meinem Ausgangsproblem wie ich diesen in meiner viewThumbs.php ermittle da ich nur die ID des Bildes über nen GET-Parameter überge.

Das ganze wird dann so verwendet
Code:
<img src="viewThumbs.php?id=25648&size=album" />
evilbrot ist offline  
Alt 15.10.2009, 09:55  
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.846
HPR1974 wird schon bald berühmt werden
Standard

Zitat:
Zitat von evilbrot Beitrag anzeigen
Naja wenn ich 300 Bilder in einem Album hab und für jedes Bild nen Thumbnail erstelle und ich den benötigten Dateinamen über die ID aus der DB ziehe dann hau ich ja auch 300 Statements raus...
Das liegt ja wohl dann an Dir
HPR1974 ist offline  
Alt 15.10.2009, 10:18  
Neuer Benutzer
 
Registriert seit: 06.09.2009
Beiträge: 6
PHP-Kenntnisse:
Fortgeschritten
evilbrot befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von HPR1974 Beitrag anzeigen
Das liegt ja wohl dann an Dir
-.- Ist schon klar, deswegen hab ich mir ja auch des mit der Session überlegt, wo ich vorher mit einem Statement alle benötigten ID -> Dateinamen zuordnungen erledige. Ich wollte aber wissen obs da noch andere Möglichkeiten gibt, diese zurordnung zu erledigen.
evilbrot ist offline  
Alt 15.10.2009, 10:46  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 3.891
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist ein sehr geschätzer Menschlstegelitz ist ein sehr geschätzer Menschlstegelitz ist ein sehr geschätzer Menschlstegelitz ist ein sehr geschätzer Mensch
Standard

Zitat:
Zitat von evilbrot Beitrag anzeigen
So, nun brauch ich aber zum erstellen des Thumbs den Dateinamem des original Bildes. Und da wären wir wieder bei meinem Ausgangsproblem wie ich diesen in meiner viewThumbs.php ermittle da ich nur die ID des Bildes über nen GET-Parameter überge.

Das ganze wird dann so verwendet
Code:
<img src="viewThumbs.php?id=25648&size=album" />
Speicherst du den Dateinamen des Originals denn nicht mit ab?
Viele Möglichkeiten hast du ja nicht.. entweder Dateinamen mit speichern oder Datei so benennen, das du bereits aus der ID Rückschlüsse auf den Originaldateinamen schliessen kannst...
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline  
Alt 15.10.2009, 12:00  
Neuer Benutzer
 
Registriert seit: 06.09.2009
Beiträge: 6
PHP-Kenntnisse:
Fortgeschritten
evilbrot befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von lstegelitz Beitrag anzeigen
Speicherst du den Dateinamen des Originals denn nicht mit ab?
Viele Möglichkeiten hast du ja nicht.. entweder Dateinamen mit speichern oder Datei so benennen, das du bereits aus der ID Rückschlüsse auf den Originaldateinamen schliessen kannst...

Der Dateiname wird mit abgespeichert. Das Bild 1.jpg wird z.B. unter tn_1.jpg gespeichert. Das ist ja egtl alles nebensächlich.
Allerdings übergebe ich ja an mein viewThumbs.php die ID des Bildes aus der Datenbank. Und dort wird entweder nen Thumbnail erstellt falls noch keins vorhanden ist, oder halt auf das vorhanden weitergeleitet. Aber dafür brauch ich den Dateianmen. Ich muss ja wissen welches Bild hinter der ID steckt. Um mal nen bisschen Code hier reinzubringen:

PHP-Code:
// Beispielaufruf: viewThumb?id=2548&size=album
// size Parameter wird hier noch nicht beachtet

session_cache_limiter('private_no_expire, must-revalidate');
session_start();

require_once 
'ThumbLib.inc.php';

$fileModTime strtotime($dateUpdated); // Datum des letzten Updates des Albums in der DB
// Getting headers sent by the client.
$headers getRequestHeaders();

// Checking if the client is validating his cache and if it is current.
if (isset($headers['If-Modified-Since']) && (strtotime($headers['If-Modified-Since']) == $fileModTime)) {
    
// Client's cache IS current, so we just respond '304 Not Modified'.
    
header('Last-Modified: '.gmdate('D, d M Y H:i:s'$fileModTime).' GMT'true304);

else {
    
// Image not cached or cache outdated, we respond '200 OK' and output the image.
    
header('Last-Modified: '.gmdate('D, d M Y H:i:s'$fileModTime).' GMT'true200);
    
    
    
// Ab hier brauche ich nun den Dateinamen der zu der ID gehört.
    
    
if(file_exists('./thumbs/album1/tn_1.jpg')) {
        
// thumb is avaiable so use it
                
header('Content-type: image/jpeg');
        
readfile('./thumbs/album1/tn_1.jpg');
    }
    else {
        
$imgSrc './albums/album1/1.jpg';
        
$thumb PhpThumbFactory::create($imgSrc);
        
$thumb->resize(150150);
        
$thumb->save('./thumbs/album1/tn_1.jpg');
        
$thumb->show();
    }

Also ich hab die zwei Möglichkeiten über die DB oder die Session zu gehen... wobei mir bei der Session die ständigen Datebankaufrufe erspart bleiben würden. Ist vielleicht nen bisschen kompliziert mein Vorhaben darzustellen, aber ich will egtl nur wissen obs noch andere Wege gibt wie ich aus der viewThumbs.php an die Dateinamen komme

Geändert von evilbrot (15.10.2009 um 13:59 Uhr).
evilbrot ist offline  
Alt 15.10.2009, 14:18  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 1.898
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Zitat:
Allerdings übergebe ich ja an mein viewThumbs.php die ID des Bildes aus der Datenbank
Wo und wie? viewThumbs.php ist das ein View Helper? Dein Konzept wirkt noch ein wenig schwammig. Und was spricht dagegen, die thumbs gleich beim upload zu generieren?

grüße
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist gerade online  
Alt 15.10.2009, 15:04  
Neuer Benutzer
 
Registriert seit: 06.09.2009
Beiträge: 6
PHP-Kenntnisse:
Fortgeschritten
evilbrot befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von rudygotya Beitrag anzeigen
Wo und wie? viewThumbs.php ist das ein View Helper? Dein Konzept wirkt noch ein wenig schwammig. Und was spricht dagegen, die thumbs gleich beim upload zu generieren?
Was ist ein View Helper?


Ich würde gerne die Verzeichnisstrucktur, die hinter der Gallerie steckt, verstecken. Deswegen will ich die anzeige der Bilder über ein PHP Script laufen lassen, dem ich die ID des Bildes übergebe und das entsprechende Bild zurückliefert.

Nehmen wir an ich generiere in meiner index.php die Anzeige der Bilder in einem DIV. Dann will ich nicht die kompletten Pfad zum Bild dort hineinschreiben sondern einfach so:

HTML-Code:
<div><img src="viewThumb.php?id=200&size=album"><div>
<div><img src="viewThumb.php?id=201&size=album"><div>
<div><img src="viewThumb.php?id=202&size=album"><div> 
Das Script viewThumb.php ermittelt dann welches Bild hinter der ID steckt und zeigt es an.
evilbrot ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mit PHP dynamisch Bilder erstellen Tobias Tutorials 39 21.04.2010 09:56
Thumbnails vom PC aus erstellen thiagojonas Scriptbörse 5 05.07.2009 21:06
Dynamisch Ordner erstellen und Dynamisch Bilderordner auslesen timmeyy PHP Tipps 2009 9 22.06.2009 09:13
[Erledigt] Dynamisch erzeugte Thumbnail Gallery mit Hovereffekt, sporadischer Fehler! FearMyInnerSelf PHP Tipps 2008 1 20.09.2008 21:05
Thumbnails erstellen Fehlermeldung was tuhen? ARG PHP Tipps 2008 4 07.09.2008 14:47
Thumbnails erstellen -> Qualtitätsproblem GrU3nL!nG PHP Tipps 2006 6 28.11.2006 15:58
Thumbnails serverseitig erstellen PHP-Fortgeschrittene 3 23.08.2005 12:42
db tabellen dynamisch erstellen GELight PHP Tipps 2005-2 5 22.07.2005 14:35
Tabellen dynamisch erstellen PHP Tipps 2005 4 20.04.2005 13:20
Dynamisch Formular Felder erstellen Simon9990 PHP Tipps 2005 2 29.01.2005 22:00
Alle dynamisch erstellen Elemente verschicken HTML, Usability und Barrierefreiheit 3 23.09.2004 15:38
Thumbnails erstellen... PHP Tipps 2004 10 20.09.2004 12:56
[Erledigt] Sitemap dynamisch erstellen PHP Tipps 2004 1 26.07.2004 17:13
Bilder dynamisch erstellen suter PHP Tipps 2004 12 13.07.2004 12:38
Bilder Upload und automatische thumbnails erstellen PHP Tipps 2004 11 08.07.2004 21:22

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/php-einsteiger/60076-php-gallery-thumbnails-dynamisch-erstellen.html, php gallery erstellen, thumbnails erstellen php, php galerie erstellen, php thumbnails erstellen, php bildergalerie erstellen, php thumbnail gallery erstellen, php thumbnail erstellen, galerie php erstellen, gallery erstellen php, gallery php erstellen, php vorschaubilder, thumbnails erstellen php codeschnipsel, galerie thumbnails erstellen, php fotogalerie erstellen, thumbnail erstellen php, php galerie dynamisch, thumbnails dynamisch erzeugen, thumbnails dynamisch erstellen mit php, thumbnails dynamisch erstellen

Alle Zeitangaben in WEZ +1. Es ist jetzt 20:32 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum