Bilder aus Verzeichniss und Unterverzeichniss auslesen

  • Hallo, ich habe hier ein JavaScript, das die Bilder in einer Zeitleiste anzeigt.

    Nun möchte ich dieses Script etwas anpassen.

    In dem Bereich, wo die Dateien angegeben sind, möchte ich Bilder aus einem Verzeichniss (galerie) und dessen Unterverzeichnissen generieren lassen.

    Wie kann man das am besten lösen?

    Danke.

  • Am besten nimmst du ein PHP-Script, das du wie folgt einbindest:

    HTML
    <script type="text/javascript" src="images.php"></script>


    Dann erstellst du das Script "images.php" und liest mittels glob() oder ähnlichem die Verzeichnisse ein.
    Das Script sollte mit folgenden Zeilen beginnen:

    PHP
    <?php
            header('Content-Type:text/javascript; charset=utf-8');
    //...
    ?>


    Und dann erstellst du einfach mit PHP keinen HTML-Code, sondern ein JavaScript-Array.

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • Hi und vielen Dank für die Hilfen.

    Ich habe heute mal wieder etwas Zeit und habe ein kleines Script entworfen. Erst einmal habe ich das Auslesen auf ein Verzeichnis beschränkt, um überhaupt mal zu sehen, wie weit ich komme.

    2 Probleme habe ich in meinem Script.

    1. Es werden nur zwei Bilder statt der 5 Angezeigt und das sind auch noch die Selben.
    2. Das soll dann nach dem 1 Problem gelöst werden, wie ich es nun hinbekomme, das er aus dem Unterverzeichniss /upload/ auf alle weiteren Unterverzeichnisse zugreift und die Bilder anzeigt.

    Dank vorab für die Unterstützung.

    Hier mal mein Skript:



    Die Enbindung in das JavaScript:

    PHP
    leftrightslide[0]='<a href="galerie.php"><img src="<?php echo $pictures?>" height=160 border=0></a>'
  • rekursion ist hier das zauberwort...
    du musst auslesen welche teile in nem verzeichnis sind, wenn des ding unterverzeichnisse hat, musste die auch auslesen mit der gleichen funktion.

    dann haste beim einbinden nen semikolon und nen leerzeichen vergessen
    was soll $info und $pictures machen? da haste ne zuordnung aber machst nix damit.

    kack telefon.. jetzt war dodo schneller^^ und ausführlicher

  • Puhhh, hab ich mir irgendwie einfacher vorgestellt :)

    So nach langem probieren hab ich erst mal genug, schaue mir das in den Tagen nochmal etwas intensiver an. Irgendwie habe ich das wohl noch nicht ganz verstanden.

    Das ist der letzte Stand, der aber nichts ausgibt, ich poste ihn aber trotzdem mal:

  • Hast du dir die Dokumentation von glob() angesehen? -.-
    Das gibt immer ein Array zurück.
    Du hängst bestimmt in einer Endlosschleife fest, oder?

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • Hallo !

    So habe es nun geschafft, die Dateien als allen Verzeichnissen auszulesen.

    Nun habe ich noch Probleme bei dem JavaScript.

    Das Verhalten ist wie bereits geschrieben, dass er immer nur 1 Datei anzeigt und dann dieselbe nachläd.

    Wie kriege ich jetzt die Dateien da richtig rein ?

    Das Slide JavaScript:

    2 Mal editiert, zuletzt von Hauer (27. August 2010 um 16:06)

  • also die zeilen abzuschliessen is wohl eine grundlage die man in keiner programmier- oder scriptsprache braucht.
    nix is eingerückt oder gar leserlich..

    also ich für meinen teil verspüre nich im geringsten die lust mir das anzusehen

  • Sorry, das ist ja nur halb richtig !

    Das PHP Script was ich geschrieben habe ist eingerückt, nur halt leider das JavaScript nicht, da ich es selber nicht geschrieben habe und es bereits so war.

    Aber wenn es für dich dann besser ist, mache ich mich halt nochmal ran, das Script zu formatieren, kein Ding.

    Einmal editiert, zuletzt von Hauer (27. August 2010 um 16:59)

  • Ja, ich will die Verzeichnisse auslesen und alle Bilder die er findet in das Slide integrieren !

  • So, ich hoffe es ist so besser zu lesen :)

  • Ich hab bereits geschreiben, wie du das von PHP zu JavaScript bringst.

    Am besten nimmst du ein PHP-Script, das du wie folgt einbindest:

    HTML
    <script type="text/javascript" src="images.php"></script>


    Dann erstellst du das Script "images.php" und liest mittels glob() oder ähnlichem die Verzeichnisse ein.
    Das Script sollte mit folgenden Zeilen beginnen:

    PHP
    <?php
            header('Content-Type:text/javascript; charset=utf-8');
    //...
    ?>


    Und dann erstellst du einfach mit PHP keinen HTML-Code, sondern ein JavaScript-Array.

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • Hallo Dodo,

    ich habe eine index.php in der das Slide-javascript läuft.

    nur mal so zum Verständnis:

    Das mit der images.php ist soweit klar, dan binde ich in den header der index.php das javascript images.php ein.

    Aber das erstellen des Javascript-Array ist mir irgendwie unklar.

    1. Wo soll es hin, an den Angang des Slide Javascript?, also <script Type="text/javascript"> <?php ... ?> ...... </script>
    2. Wie erstelle ich das Array in Bezug auf die image.php, wie binde ich diese in das ein JavaScript-array ein, ich dachte es ist bereits ein array?

    Danke.

  • Du gibst mit PHP einfach einen JavaScript-Code aus und keinen HTML-Code!

    Und das bindest du wie oben beschrieben ein.

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • Irgendwie bekomme ich keine Ausbabe:

    Die images.php sieht nun so aus:

    Und der der betreffende Teil des javascripts in der index.php so:

    Code
    var leftrightslide=new Array()
    var finaSorrSorry, daslslide=''
    leftrightslide[0]='<a href="galerie.php"><img src="'bilder'" height=120 border=0></a>'
    var imagegap=" "
    var slideshowgap=5
  • so schwer kann das doch gar nich sein!!

    PHP
    foreach ($file as $bilder) {
    
           echo "var bilder = new Array(" . $bilder . ");"; 
    
     }

    is doch schon wieder murks, weil du dann jedes mal das array bilder neu deklarierst!
    machst du dir eigentlich gedanken bei dem was du schreibst? oder übernimmst du nur codefetzen und versuchst mit copy und paste zu entwickeln?

    for der foreach deklarierst du das array und in php nen counter (es ginge auch ohne counter, aber dafür halte ich dich nicht für erfahren genug!)
    im foreach gehste daher und baust nen eintrag fürs javascript-array und die positionen im array sind die werte vom counter, danach inkrementierst du den counter.

    PHP
    $counter = 0;
    echo "var bilder = new Array();";
     foreach ($file as $bilder) {
    
            echo "bilder['.$counter.']=\"" . $bilder . ");\";"; 
     }


    ungetestet!
    das ergebnis sollte im js so aussehen:

    var bilder = new Array();
    bilder[0] = "pfadzumbild/bild.jpg";
    bilder[1] = "pfadzumbild/bild1.jpg";
    bilder[2] = "pfadzumbild/bild2.jpg";