php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.01.2006, 16:17  
Gast
 
Beiträge: n/a
Standard Problem mit simplem PHP-Fotoalbum

Ich habe versucht, aus einer simplen Tabellen-Fotogallerie von J. Wienke die Tabellen herauszubekommen. Folgendes soll angezeigt werden:

Thumbnails, die aus einem Ordner ausgelesen werden, sollen Bild für Bild nebeneinander erscheinen. Bei Klick öffnet sich dann das zugehörige Bild in einer größeren Version. Die Fotos dazu liegen in einem seperaten Ordner, in dem sich auch ein Ordner "thumbnails" befindet. Das Problem liegt in der Ausgabe: Es wird immer nur das erste Bild aus dem Ordner angezeigt. Ich benötige eventuell eine Art Schleife, weiß aber nicht wie ich sie einbaue... wäre nett, wenn jemand mal drüberschaut und mir sagt was ich ändern sollte.

Hier ist das Skript (unnötiger HTML-Code ist rausgelassen worden):

Code:
<?php
/* -----------------------------
PHP-Fotoalbum by Johannes Wienke
------------------------------*/

$ordner = "swaugust2003"; //Verzeichnis zu den Bildern

/* Funktion, die das angegebene Verzeichnis inklusive aller Unterverzeichnisse
durchläuft und nach Thumbnails durchsucht. Diese werden im Array $thumbs
gespeichert. Es können also nur Bilder angezeigt werden, zu denen auch Thumbnails
vorhanden sind*/

function get_dir ($dir) {
global $thumbs, $i;
$typ = "jpg";
$fp = opendir($dir);
while($datei = readdir($fp)) {
if (is_dir("$dir/$datei") && $datei!="." && $datei!="..") {
get_dir("$dir/$datei");
}else{
if (preg_match("/^index/", $datei)) continue;
if (preg_match("/\.\.?$/", $datei)) continue;
if (preg_match("/\.".$typ."$/i", $datei) && preg_match("/tn_/", $datei)) {
$thumbs[] = "$dir/$datei";
}
}
$i++;
}
closedir($fp);
}

//Funktionsaufruf

get_dir("$ordner");

?>
--------------[HTML CODE, Platz für die Ausgabe ...]-----------------

Code:
<?php

//Ausgabe

$thumbnow = $k * $length + $l;
$size = getimagesize("$thumbs[$thumbnow]");
$bildnow = ereg_replace("thumbnails/tn_", "", $thumbs[$thumbnow]);
echo "<a href=\"$bildnow\" target=\"_blank\"><img src=\"$thumbs[$thumbnow]\" width=\"$size[0]\"
height=\"$size[1]\" border=\"0\" alt=\"zum Vergrößern klicken\"></a>\n";

?>
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 21.01.2006, 16:22  
Gast
 
Beiträge: n/a
Standard

Meinste sowas ?

http://www.cix88.de/cix_php/php_web/...n_ausgeben.php
 
Alt 21.01.2006, 17:12  
Gast
 
Beiträge: n/a
Standard

Ja genau, nur dass in dem Skript, das ich verwende, Thumbnails ausgelesen werden (nicht von PHP, sondern vorher manuell verkleinerte Bilder) und diesen dann ein Link zu ihrem jeweiligen (größeren) Bild zugeordnet wird.

Also beispielsweise

001_tn.jpg = Thumbnail
001.jpg = Großes Bild

Momentan läuft es so, dass ich nur das erste Bild (Thumbnail) rausbekomme, da müsste noch eine Schleife in die Ausgabe - weiß aber wirklich nicht wie.

Dein Skript ist ja etwas anders aufgebaut, sehe aber, dass du auch Schleifen in der Ausgabe hast. Wahrscheinlich ist es simpel aber ich bekomme es nicht hin, weiß nicht was ich in der Schleife abfragen soll.
 
Alt 21.01.2006, 17:16  
Gast
 
Beiträge: n/a
Standard

Zitat:
$thumbs[] = "$dir/$datei";
Das $thumbs ist hier ein Array() und kann mit foreach() ausgelesen werden.
 
Alt 21.01.2006, 17:43  
Gast
 
Beiträge: n/a
Standard

Ok, habe das mal eben probiert. Jetzt lautet die Ausgabe:

Code:
<?php 

foreach($thumbs as $file) {

$thumbnow = $k * $length + $l;
$size = getimagesize("$thumbs[$thumbnow]");
$bildnow = ereg_replace("thumbnails/tn_", "", $thumbs[$thumbnow]);
echo "<a href=\"$bildnow\" target=\"_blank\"><img src=\"$thumbs[$thumbnow]\"
width=\"$size[0]\" height=\"$size[1]\" border=\"0\" alt=\"zum Vergrößern klicken\"></a>\n";

}

?>

Das Ergebnis: Es wird 35 Mal das gleiche Bild mit dem gleichen Link dargestellt, also quasi nur das erste im Ordner. Immerhin zählt er die Bilder aus, denn es sind exakt 35. Was fehlt genau?

PS: Dein Skript von vorhin funktioniert im Firefox leider nicht, nur im IE.
 
Alt 21.01.2006, 18:01  
Gast
 
Beiträge: n/a
Standard

PHP-Code:
<?php
foreach($thumbs as $file)
?>
In $file stehen die einzelnen Dateinamen.

PHP-Code:
<?php
$thumbnow 
$k $length $l;
?>
Was sol der Quatsch?
PHP-Code:
<?php
$size 
getimagesize("$thumbs[$thumbnow]"); 
?>
Wie schon gesagt, $file

Mein Tipp: Grundlagen lernen und richtig debuggen:
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
3. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
4. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
5. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
6. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
7. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt, was eigentlich selbstverständlich sein sollte.

Gruß
phpfan
 
Alt 21.01.2006, 18:33  
Gast
 
Beiträge: n/a
Standard

Habs hinbekommen!

Nun lautet die Ausgabe:

Code:
<?php 

foreach($thumbs as $file) {

$size = getimagesize("$thumbs[$file]");
$bildnow = ereg_replace("thumbnails/tn_", "", $file);
echo "<a href=\"$bildnow\" target=\"_blank\"><img src=\"$file\"
width=\"$size[0]\" height=\"$size[1]\" border=\"0\" alt=\"zum Vergrößern klicken\"></a>\n";

}

?>

DANKE NOCHMAL IHR BEIDEN!
 
Alt 21.01.2006, 18:37  
Gast
 
Beiträge: n/a
Standard

Sorry, dass ich doch nochmal nachhaken muss: Hab gerade ein kleines Problem... die Größe (width / height) wird nicht übernommen, da muss noch irgendwas vor z.B. height=\"$size[1]\"

Weiß jetzt leider nicht wie die korrekte Syntax lautet... rein theoretisch müsste es für jeden $file aus $thumbs sein.
 
Alt 21.01.2006, 18:41  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Was heißt wird nicht übernommen?
Zergling-new ist offline  
Alt 21.01.2006, 18:42  
Gast
 
Beiträge: n/a
Standard

Naja das heißt, dass nachher im Quellcode keine Angaben für width und height (also z.B. width="") zu finden sind.
 
 


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
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
Sessions Problem StephenKing PHP Tipps 2008 3 16.10.2007 08:30
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
Array Problem [Ansatz ?] PHP Tipps 2005 0 27.01.2005 18:24
[Erledigt] Problem bei Massenmails versenden mit der Funktion mail PHP-Fortgeschrittene 3 19.01.2005 13:36
[Erledigt] Problem mit Übergabe einer Klasse in PHP4 PHP-Fortgeschrittene 10 08.01.2005 21:00
Problem mit Weiterleitung PHP Tipps 2004-2 16 22.12.2004 17:49
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
[Erledigt] PHP Upload (Master Value/Local Value Problem) PHP-Fortgeschrittene 5 23.11.2004 07:21
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
[Erledigt] Problem mit Timestamp! PHP Tipps 2004 24 08.06.2004 19:51
Login Problem PHP Tipps 2004 4 04.06.2004 18:46
foreach problem mAy^daY PHP Tipps 2004 3 02.06.2004 20:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php preg_match in while schleife wiedrhohlt, php code für bilder nebeneinander und vergrößern, php-fotoalbum by johannes wienke, php fotoalben eine datei, html code für fotoalbum, ordner nach thumbnails durchsuchen php, php fotoalbum dateibasierend, html code fotoalben, simpleme thumbs

Alle Zeitangaben in WEZ +2. Es ist jetzt 14: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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.