Ankündigung

Einklappen
Keine Ankündigung bisher.

Zufalls Diashow Script

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zufalls Diashow Script

    Hallo,
    ich habe dieses Diashow Script bereits im Inet gefunden.

    Code:
    <?php
    
    # Diashow mit PHP und JavaScript
    
    # Verzeichnis der Bilder
    $verzeichnis = "bilder/";
    
    # Geschwindigkeit in Millisekunden
    # 3000 = 3 Sekunden
    $peed = 2500;
    
    echo "
    <script type='text/javascript'>
    Animation=new Array();
    bild=new Array();
    var i=0;
    ";
    
    $ordner=opendir ($verzeichnis); 
    $by = 0;
    while ($file = readdir ($ordner)) {
     if($file != "." && $file != "..") {
      echo "bild[$by]='$verzeichnis$file';\n";
      $by++;
     }
    }
     closedir($ordner);
    
    echo "
    for(r=0; r < $by; r++){
     Animation[r]=new Image(); Animation[r].src=bild[r];
    }
    
    function anzeigen(){
     if(i < $by){
      document.images.dummy.src=Animation[i].src;
      i++;
     }
     else{
      i=0;
     }
      setTimeout('anzeigen()',$peed);
    }
    </script>
    
    <body onLoad='anzeigen();'>
    <div align=center><img name='dummy'></div>
    ";
    ?>
    So funktioniert es super und entspricht auch ganz meinen wünschen.
    Nur hätte ich gerne das die Bilder zufällig ausgewählt und dann angezeigt werden.
    Kann mir da vielleicht einer behilflich sein, da ich nicht viel ahnung von php habe.
    M.f.G.


  • #2
    In der Funktion "anzeigen()" kannst du doch einfach eine Zufallszahl zwischen 0 und der Arraylaenge-1, also der Anzahl der Bilder-1 generieren und dann dieses Bild anzeigen. Ungefähr so:

    PHP-Code:
    function anzeigen(){
     while(
    Animation.length-1){
      
    = (Animation.length-1)*(Math.random());
      
    Math.round(i);
     }
      
    document.images.dummy.src=Animation[i].src;

    Dass 1 abgezogen wird ist deshalb wichtig, weil der Zugriff auf ein Array ja nicht mit 1, sondern mit 0 beginnt. Sprich der 1. Arrayinhalt wird mit array[0] und nicht array[1] ausgelesen.
    Versuch mal ob du damit weiterkommst.

    Kommentar


    • #3
      Das ist jetzt aber JavaScript-Code den du gepostet hast;

      eimer24, bitte mach dich doch etwas mit PHP schlau, wir wollen hier Leuten helfen PHP zu lernen, nicht kostenlos Skripte fuer sie schreiben.

      Entweder du postest also deine Versuche oder ich verschiebe das ganze ins Gesuche-Forum.

      PHP: mt_rand - Manual
      PHP: shuffle - Manual
      "Mein Name ist Lohse, ich kaufe hier ein."

      Kommentar


      • #4
        Da er die Funktionen eh schon in JS geschrieben hatte, dachte ich halt es wäre für ihn einfacher. Ist aber natürlich auch in PHP zu lösen. Um dir nicht gleich wieder "ein kostenloses Skript zu schreiben", geb ich dir halr ein paar Tipps.

        Deine Javascript-Variablen Bild und Animation brauchst du eigentlich gar nicht in JS. Verwende doch PHP-Variablen, als $Bild und $Animation. Die liest ja schon wunderbar den Ordner auf dem Server aus und füllst die Variable Bild mit den Dateipfaden. Schreib sie doch gleich in eine PHP-Variable $Bild. Danach füllst du dein 2. Array $Animation. Anschließend über
        PHP-Code:
        count($Animation); 
        Die Arraylänge auslesen und über
        PHP-Code:
        rand(0,count($Animation)-1); 
        eine Zufallszahls erzeugen, die dann das zufällige Bild aufruft. Deine Ausgabe sieht dann halt so aus:
        PHP-Code:
        echo "document.images.dummy.src=".$Animation[$i].src.";"
        wenn $i deine Zufallszahl ist.

        Kommentar


        • #5
          Schau dir mal die Funktionen glob() und shuffle() an. Damit dürfte das noch einfacher zu realisieren sein, als in deinem Beispiel.
          Was allerdings dein JS-Teil machen soll verstehe ich definitiv nicht.
          Gruss
          L

          Kommentar

          Lädt...
          X