Mailinglisten-Archive |
Zum besseren Verständnis vielleicht doch mal das ganze Problem... Ich habe eine Tabelle in der Datenbank, in der ich Bild-Indizes abgelegt habe. So ein Index ist quasi der Eintrag eines bestimmten Motivs. Hierzu gehört eine zweite Tabelle mit einzelnen Bilddateien in verschiedenen Größen, die ich diesen Indizes zuordne. Zu einem Index "Firmenlogo" gehören dann sinngemäß mehrere Dateien in verschiedenen Größen, die aber alle das gleiche Motiv zeigen. Aus diesen Indizes kann ich in der Datenbank wiederum Alben erstellen, ähnlich den Fotostrecken auf Spiegel Online. Der Hintergedanke ist der, daß sich bestimmte Teile der Website selbstständig "entscheiden", welche Größe eines Bildes sie anzeigen, ohne daß sich der Autor des Textes darum kümmern muss. Auf der Einstiegsseite z.B. würden nur kleine Vorschaubilder angezeigt werden (damit diese nicht zu überladen wirkt), während bei der Einzelansicht eines Artikels dann das Motiv eventuell in einer größeren... ähm, Größe eingebunden wird (nur ein Artikel, also lenkt ein größeres Bild nicht allzu sehr ab). Optional soll man natürlich weiterhin angeben können, ob das Bild groß oder klein sein soll. Aus einer Angabe wie "[IMG ID=35 SIZE=SMALL]" soll also über preg_match und eine Datenbankabfrage etwas werden, was wie "<img src="unser_hund_small.jpg" width="150" height="100">" aussieht. Der Dateiname, width und height kämen dann aus der Tabelle mit den Einzelbildern. Der beste Weg wäre hier wahrscheinlich, erst alle "[IMG ...]"-Codes zu suchen, um diese dann nach und nach abzuarbeiten - also Auseinandernehmen, Datenbankabfrage und Generieren des HTML-Codes - um dann im Anschluss den gesamten "[IMG ...]"-Teil durch den HTML-Code zu ersetzen. Hierfür bräuchte ich dann auch keinen regulären Ausdruck mehr, weil ich den "[IMG]"-Block ja 1:1 finden und ersetzen kann. Es mag nach zuviel Aufwand für ein kleines Problem aussehen, aber ich finde es ganz praktisch, und gerade in Verbindung mit den Alben sehr nützlich. ..::// Thomas
php::bar PHP Wiki - Listenarchive