Antworten auf deine Fragen:
Neues Thema erstellen

[PHP] Bilder aus vorgegeben Ordner laden

patrick_l

Hat es drauf

Hi allerseits,

ich schraube gerade wieder an einer Website und setze gerade die Galerie um. Der Inhalt soll nachher mit der JQuery Lightbox angezeigt werden. Jetzt geht es nur darum das alle Bilder aus dem Ordner ausgelesen werden. Es soll halt möglich sein Bilder einfach via FTP hoch zu laden.

Wäre super wenn ihr mal eben einen Blick auf meinen Code werfen könntet. Nicht das ich am Ende damit Probleme bekomme. Hänge auch gerade bisschen mit jQuery fest. Weiß nicht so recht wie ich jetzt der Lightbox mitteile das sämtliche Bilder der Site angezeigt werden soll bzw. mit der Lightbox angezeigt werden sollen.

Schonmal besten Dank, Patrick

PHP:
<?
$i = 0;
$images = array();
$directory = opendir("../resources/images/gallery");
while ($image = readdir($directory)) {
  if ($image !="." && $image !="..") { $images[] = "<
   a target=\"_blank\"
   href=\"../resources/images/gallery/$image\"<img width=\"200\" height=\"300\"
   src=\"../resources/images/gallery/$image\"></a>";
  }
}
closedir($directory);
$max = count($images);
while ($i<=$max){
   echo $images[$i];
   $i = $i+1;
}
?>
 

patrick_l

Hat es drauf

AW:
PHP:
 Bilder aus vorgegeben Ordner laden[/b]

Höö, das schließende a-Tag ist doch da.
[php]src=\"../resources/images/gallery/$image\"></a>";

und das öffnende a-Tag zwei Zeilen darüber, vor dem Target.
 

exo

Aktives Mitglied

AW:
PHP:
 Bilder aus vorgegeben Ordner laden[/b]

hmmm hab mir dein Beitrag jetzt 4x Durchgelesen, und leider nicht herausgefunden, welches Problem du genau hast?
 

patrick_l

Hat es drauf

AW:
PHP:
 Bilder aus vorgegeben Ordner laden[/b]

Ich wollte wissen ob es so vom Aufbau (Syntax) her geht bzw. ob es so richtig ist. Mehr oder weniger ein Kotroll-lesen von euch. Und mein zweites anliegen ist halt wie ich die jQuery Lightbox mit einbeziehe. Stehe etwas auf dem Schlauch. Die ganze Nacht schon an der Site dran.
 

Milly

Nicht mehr ganz neu hier

AW:
PHP:
 Bilder aus vorgegeben Ordner laden[/b]

Diese Stelle ist meiner Meinung nach falsch:
 
[CODE][FONT=Courier New][COLOR=#dd0000]image\"<img width[/COLOR][/FONT][/CODE]
 
 
 
Ich würde schreiben:
 
[CODE]
[FONT=Courier New][COLOR=#0000bb]$images[/COLOR][COLOR=#007700][] = [/COLOR][/FONT][COLOR=#dd0000][FONT=Courier New]"<a target=\"_blank\"[/FONT][/COLOR]
[FONT=Courier New][COLOR=#dd0000]href=\"../resources/images/gallery/$image\">[/COLOR][/FONT]
[COLOR=#dd0000][FONT=Courier New]<img width=\"200\" height=\"300\"[/FONT][/COLOR]
[FONT=Courier New][COLOR=#dd0000]src=\"../resources/images/gallery/$image\"></a>"[/COLOR][/FONT][COLOR=#007700][FONT=Courier New];[/FONT][/COLOR]
[/CODE]
 
 
Grüße
Milly
 

Zampano_

Nicht mehr ganz neu hier

AW:
PHP:
 Bilder aus vorgegeben Ordner laden[/b]

[PHP]while ($image = readdir($directory)) {
ist nicht 100% korrekt. Falls dir ein User ein Bild mit dem Namen "false" hochlädt, bricht das Script ab, sobald diese Datei gelesen wird.
Schusssicher wäre
PHP:
while (false !== ($image = readdir($directory)) {
Wenn die User Dateien per FTP in das Verzeichnis laden können, würde ich bei der Schleife auch noch alles überspringen wo die Dateiendung nicht gif, jpg, png etc. ist. Du willst ja nur Bilder anzeigen.

... die Stelle die Milly schreibt, ist nicht nur seiner Meinung nach falsch. Da fehlt das > vom a-Tag ;)

Ich nehme an, die zweite Schleife steht eigentlich an einer ganz anderen Stelle. Ansonsten wäre die ja recht sinnlos. ;)
(Nebenbei mache ich sowas dann lieber mit foreach, da ich mich dann nicht um den Counter kümmern muss, aber das ist Geschmackssache)

Ansonsten sieht's für mich sauber aus.
 
Zuletzt bearbeitet:

Milly

Nicht mehr ganz neu hier

AW:
PHP:
 Bilder aus vorgegeben Ordner laden[/b]

@Zampano
Grundsätzlich hast du natürlich Recht. Aber meinst du wirklich das jemand ein File mit dem Namen [I]false[/I] hochlädt. Wenn überhaupt dann würde jemand ein [I]false.jpg[/I] oder [I]false.gif[/I] hochgeladen und das ist nicht false.
 
Grüße
Milly
 

Zampano_

Nicht mehr ganz neu hier

AW:
PHP:
 Bilder aus vorgegeben Ordner laden[/b]

Milly, da hast du recht, daher hab ich "nicht 100% korrekt" geschreiben.
Kommt auch sehr darauf an wer da alles hochladen darf ;) - aber da es per ftp ist, wird es wohl eher eine geschlossene Usergroup sein, der man einigermaßen vertrauen kann.
Wollte nur mal drauf hinweisen.

Gruß
Zamp
 

patrick_l

Hat es drauf

AW:
PHP:
 Bilder aus vorgegeben Ordner laden[/b]

"Fremde" User können ja keine Bilder hochladen. Die Website ist ein Portfolio. Ich möchte so ermöglichen das der Betreiber der Site einfach per Drag&Drop via FTP seine Bilder in den passenden Ordner packt. Mit PHP soll dann einfach der Ordner in die passende Kategorie geladen werden. 

Mit dem öffnendem a-Tag habe ich jetzt auch verstanden. ;) Muss natürlich geschlossen werden. Habe es nur selber nicht gesehen. Aber dafür seit ihr ja da, bzw. deshalb solltet ihr mal einen Blick drauf werfen. 

Schonmal vielen Dank für eure Hilfe, Gruß Patrick
 

Chriss1987

me.drinkCoffee();

AW:
PHP:
 Bilder aus vorgegeben Ordner laden[/b]

Hi,

hab mir mal deinen Source-Code angeschaut und hab ein, zwei Anmerkungen:
[php]<?php # Punkt 1

// --- Variante 1
$i = 0;
$images = array();
$directory = opendir('../resources/images/gallery'); # Punkt 2
while ($image = readdir($directory))
{
    if ($image !='.' && $image !='..') # Punkt 2
    {
        $images[] = '<a target="_blank" href="../resources/images/gallery/'.$image.'"><img width="200" height="300" src="../resources/images/gallery/'.$image.'"></a>'; # Punkt 3
    }
}
closedir($directory);
$max = count($images);
while ($i<=$max)
{
   echo $images[$i];
   $i = $i+1;
}

// --- Variante 2
$images = glob('*.*');
foreach($images AS $image)
    echo $image;

// --- Variante 3
foreach(glob('*.*') AS $image)
    echo $image;

?>

# Punkt 1
Statt dem Shorttag '<?' sollte man '<?php' verwenden, einfach aus dem Grund, dass viele Server den Shorttag nicht unterstützen.

# Punkt 2
Strings, die keine Variablen enthalten kann man aus Performance-Gründen mit einfachen Anführungszeichen notieren. So muss php den String nicht erst noch nach Variablen durchsuchen. Macht bei kleineren Projekten vielleicht nicht viel aus, aber wenn man sich das von vorn herein angewöhnt, hat man auch bei Monsterprojekten keine Probleme mehr damit! ;)

# Punkt 3
Auch hier gilt: einfache Strings in einfache Anführungszeichen fassen. Bei Zeilen wie dieser, in der HTML notiert ist, hat das den Vorteil, dass man doppelte Anführungszeichen nicht escapen muss. Weiterhin sieht man beim Syntax-Highlighter sofort, wo Variablen verwendet wurden, das hilft bei eventuellen Fehlern die richtige Stelle zu finden. Daher werden die Variablen per Verkettungsoperator mit dem gewünschten statischen String verknüpft.

// --- Variante 1
Deine ursprüngliche Funktion, jedoch mit oben genannten Änderungen

// --- Variante 2
Für den Fall, dass das Auslesen der Bilder an anderer Stelle erfolgen soll (weil das Array evtl. noch sortiert oder manipuliert werden soll (Filter o.ä.). Hier kann man das Array $images nach belieben weiterverwenden

// --- Variante 3
Wenn das Auslesen der Bilder und die Ausgabe unmittelbar und ohne Manipulation des Arrays erfolgen soll

Nun zu der Lightbox:
Ich nehme an, LightBox wurde erfolgreich eingebunden und unabhängig von den Bildern erfolgreich getestet, es geht also nur um das Verknüpfen der Bilder mit LightBox. Man kann der LightBox über einen rel-Tag im a-Tag eine Verknüpfung beibringen, dazu einfach im a-Tag folgendes einfügen: 'rel="lightbox[meinebilder]' wobei meinebilder ein beliebiger Name sein kann, jedoch für alle Bilder, die im Zusammenhang angezeigt werden sollen, gleich sein muss. Die php-Zeile dazu sähe also so aus:
PHP:
'<a target="_blank" href="'.$image.'" rel="lightbox[meinebilder]><img width="200" height="300" src="'.$image.'"></a>';

HTH
Schöne Grüße aus dem Sauerland!
Chriss
 

Milly

Nicht mehr ganz neu hier

AW:
PHP:
 Bilder aus vorgegeben Ordner laden[/b]

@Chriss
Ich stimme dir in allen Punkten zu - bis auf Punkt 1. Ob viele oder wenige Server das Shorttag unterstützen ist völlig unerheblich. Wichtig ist ja einzig und allein, ob Patricks Server (wo das Script liegt) die Shorttags unterstützt oder nicht. Das wird er beim ersten testen ja sehr schnell feststellen. :-)
Ich bemängel den Punkt deshalb, weil es so klang, das je nachdem wer die Webseite aufruft es funktioniert oder eben nicht. Und das ist ja nicht der Fall. Es hat nichts mit dem User zu tun der die Webseite aufruft, sondern nur mit dem Server wo das Script physikalisch liegt.
Wie gesagt, ich habe das nur nochmal kurz angerissen weil es von Usern die in PHP nicht so firm nicht, falsch verstanden werden könnte.
 
Grüße
Milly
 

Chriss1987

me.drinkCoffee();

AW:
PHP:
 Bilder aus vorgegeben Ordner laden[/b]

@Milly
Prinzipiell hast du ja Recht, jedoch weiß ich ja nicht, inwieweit DerOtto das Script verteilen will. Wenn er es auf mehreren Servern installiert, dann könnte es zu Problemen kommen und so würde er von Anfang an diese Fehlerquelle beseitigen (gilt auch, wenn er die Scripte erst lokal testet und dann hochlädt). Mmn sollte man auf die Shorttags verzichten, aber es gibt da natürlich auch viele weitere Meinungen. War nur ne persönliche Meinung! ;)

Wenn es natürlich so rüber gekommen ist, dass es userabhängig ist, dann tut mir das leid. Daher nochmal für alle übrigen:
Die Shorttag-Problematik hängt mit dem verwendeten Server zusammen und gilt in den meisten Fällen dann, wenn das Script auf mehreren Servern laufen soll und die Serverarchitektur weitgehend unbekannt im Vorfeld ist! ;)

Schöne Grüße aus dem Sauerland!
Chriss
 

patrick_l

Hat es drauf

AW:
PHP:
 Bilder aus vorgegeben Ordner laden[/b]

Ich danke euch schon mal für die Hilfe. Muss jetzt gleich erst einmal zum Arzt. Glaube ich bekomme eine Lungenentzündung :( Aber zurück zum Thema. Also ich beabsichtige schon meine Code auf mehreren Servern einzusetzen. Zwar nicht bei diesem Projekt, aber meine erstellen Sachen, in dem Fall mein Code, speichere ich nochmal um bei bedarf schnell darauf zuzugreifen. 

[QUOTE]so würde er von Anfang an diese Fehlerquelle beseitigen[/QUOTE]

Das ist auch mein bestreben. Entweder ganz oder gar nicht. Mit anderen Worten keinme halbe Sachen. Manchmal sind es ja echt die kleinen Feinheiten auf die es ankommt. Und was das lokale testen angeht, immer!   Nutze eigentlich ständig für meine Sites Xampp od. Mamp. Ok, wenn ich nachher zurück bin werde ich mal zu sehen das ich meine Galerie fertig bekomme. 

Dickes Dankeschön, Patrick
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.635
Beiträge
1.538.449
Mitglieder
67.556
Neuestes Mitglied
Ggirl
Oben