kostenloser Webspace werbefrei: lima-city


random pic - zufälliges Bild...bitte helfen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    c****4

    Hi ich suche ein Tut wo beschrieben wie man es hinbekommt das bilder wechsel... ich hab schon a hier in Lima geschaut aber nat?rlich wie IMMER! funktioniert keines von denen auch nur ansatzwei?e!


    plz help...
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. r*****r

    $dir = ""; // ordner der bilder
    //////
    $odir = opendir($dir);
    $pictures = array();
    while($file = readdir($odir)) {
        if(filetype($dir.$file) == "file") {
            $pictures[] = $dir.$file;
        }
    }
    $count = count($pictures)-1;
    $rand = rand(0,$count);
    echo($pictures[$rand]);


    und als FUnktion:

    function shuffle_image($dir) {
      $odir = opendir($dir);
      $pictures = array();
      while($file = readdir($odir)) {
          if(filetype($dir.$file) == "file") {
              $pictures[] = $dir.$file;
          }
      }
      $count = count($pictures)-1;
      $rand = rand(0,$count);
      return $picture[$rand];
    }


    edit: hab es nicht getestet, also keine garantie, das es funktioniert!

    edit2:
    das verzeichnis muss mit einem naschlie?endem / (schr?gstrich) angegeben werden!

    Beitrag ge?ndert am 26.12.2005 17:45 von ruehrer

    Beitrag ge?ndert am 26.12.2005 17:45 von ruehrer
  4. a**e

    Dazu brauchst du gar kein Tutorial...
    Am leichtesten ist es, wenn du verschiedene Urls in ein Array schreibst:
    $bannerurl[] = "banner1.jpg";
    $bannerurl[] = "banner2.jpg";
    $bannerurl[] = "banner3.jpg";


    Dann erzeugst du eine Zufallszahl mit rand();. Als Begrenzungswert musst du count($bannerurl) nehmen.

    Dein Skript sieht dann so aus:
    $i = rand(0,count($bannerurl)-1);
    echo "<img src='".$bannerurl[$i]."'>";



    edit: verdammt! - schon wieder zu langsam

    mfg
    Arve


    Beitrag ge?ndert am 26.12.2005 18:46 von arve
  5. Hi,

    ich weiss nicht, ob es irgendwo ein Tutorial gibt, ich zumindest keins gefunden (Es gint nur Scripts, aber ohne erk??rung des Codes).

    Ich kann dir ja kurz erkl?ren:
    $bilder = array(
      "bilder/bild1.jpg",
      "bilder/bild2.jpg",
      "bilder/bild3.jpg",
      "bilder/bild4.jpg"
    );
    
    mt_srand((double)microtime() * 1000000);
    $rand = mt_rand(0,count($bilder));
    
    if ( ! file_exists($bilder[$rand])) {
     die("Error: Das Bild '" . $bilder[$rand] ."' wurde nicht gefunden.");
    }
    
    $img_data = getimagesize($bilder[$rand]);
    
    echo "<img src=\"" . $bilder[$rand] . "\" " . $img_data[3] . ">";


    Erkl?rung:
    Im Array $bilder werden die Wege zu den Bilder angegeben.
    Mit mt_srand() (http://www.php.net/manual/de/function.mt-srand.php) legt man einen internen Startwert f?r den Zufallszahlengenerator von mt_rand() fest.
    In der Variable $rand wird die Zufallszahl von mt_rand() (http://www.php.net/manual/de/function.mt-rand.php) festgelegt. Dabei wird eine Zahl zwischen 0 und der l?nge des $bilder-Arrays erzeugt.
    Mit if ( ! file_exists($bilder[$rand])) { wird noch ?berpr?ft, ob das durch Zufall gew?hlte Bild auch existiert. Falls es nicht existiert, wird das Script abgebrochen.
    In $img_data wird die Gr?sse des Zufalls-Bild mit getimagesize() (http://www.php.net/manual/de/function.getimagesize.php) festgelegt.
    Am Schluss wird mit echo der HTML-tag img im Dokumment angezeigt. Src ist glaube ich klar (weg zum Bild), und $img_data[3] ist volgendes: In der Variable wurden ja die daten des Bildes durch getimagesize() gespeichert. Es wird ein Array zur?ckgegeben. der 3 Wert im Array ist die HTML-Zeichenkette (Also "width="x" height="y"").
    Alles klar?

    Edit:
    Du kannst auch mit folgender Funktion alle Bilder in einem Verzeichnis finden:

    function findImg($dir) {
      if ($dir[strlen($dir) - 1] != "/") {$dir .= "/";}
      $ret = array();
      $extensions = array("jpg","jpeg","gif","png"); // u.s.w.
      $dh = opendir($dir);
      while (($obj = readdir($dh)) !== false) {
        if ($object !== "." && $object !== "..") {
          if (is_file($obj)) {
            $ext = strtolower(end(explode(".",basename($obj))));
            if ( in_array($ext,$extensions) ) {
             $ret[] = $obj;
            }
          }
        }
      }
      return $ret;
    }
    
    $bilder = findImg("./bilder/");


    mfg,
    hr

    Beitrag ge?ndert am 26.12.2005 17:59 von heavyraptor
  6. Autor dieses Themas

    c****4



    heavyraptor schrieb:
    Hi,

    ich weiss nicht, ob es irgendwo ein Tutorial gibt, ich zumindest keins gefunden (Es gint nur Scripts, aber ohne erk??rung des Codes).

    Ich kann dir ja kurz erkl?ren:
    $bilder = array(
      'bilder/bild1.jpg',
      'bilder/bild2.jpg',
      'bilder/bild3.jpg',
      'bilder/bild4.jpg'
    );
    
    mt_srand((double)microtime() * 1000000);
    $rand = mt_rand(0,count($bilder));
    
    if ( ! file_exists($bilder[$rand])) {
     die('Error: Das Bild '' . $bilder[$rand] .'' wurde nicht gefunden.');
    }
    
    $img_data = getimagesize($bilder[$rand]);
    
    echo '<img src=\'' . $bilder[$rand] . '\' ' . $img_data[3] . '>';


    Erkl?rung:
    Im Array $bilder werden die Wege zu den Bilder angegeben.
    Mit mt_srand() (http://www.php.net/manual/de/function.mt-srand.php) legt man einen internen Startwert f?r den Zufallszahlengenerator von mt_rand() fest.
    In der Variable $rand wird die Zufallszahl von mt_rand() (http://www.php.net/manual/de/function.mt-rand.php) festgelegt. Dabei wird eine Zahl zwischen 0 und der l?nge des $bilder-Arrays erzeugt.
    Mit if ( ! file_exists($bilder[$rand])) { wird noch ?berpr?ft, ob das durch Zufall gew?hlte Bild auch existiert. Falls es nicht existiert, wird das Script abgebrochen.
    In $img_data wird die Gr?sse des Zufalls-Bild mit getimagesize() (http://www.php.net/manual/de/function.getimagesize.php) festgelegt.
    Am Schluss wird mit echo der HTML-tag img im Dokumment angezeigt. Src ist glaube ich klar (weg zum Bild), und $img_data[3] ist volgendes: In der Variable wurden ja die daten des Bildes durch getimagesize() gespeichert. Es wird ein Array zur?ckgegeben. der 3 Wert im Array ist die HTML-Zeichenkette (Also 'width='x' height='y'').
    Alles klar?

    mfg,
    hr





    Hab folgendes geschrieben:

    <?
    $bannerurl[] = "/images/1.jpg";
    $bannerurl[] = "/images/2.jpg";
    $i = rand(0,count($banner)-1);
    echo "<img src='".$bannerurl[$i]."'>";
    ?>

    Aber es wir dimmer ur das erste Bild angezeigt :confused:
  7. r*****r

    ganz einfach:

    <?
    $bannerurl[] = "/images/1.jpg";
    $bannerurl[] = "/images/2.jpg";
    $i = rand(0,count($bannerurl)-1);
    echo "<img src='".$bannerurl[$i]."'>";
    ?>

    du hast das fette vergessen ;)
  8. Autor dieses Themas

    c****4



    ruehrer schrieb:
    ganz einfach:

    <?
    $bannerurl[] = '/images/1.jpg';
    $bannerurl[] = '/images/2.jpg';
    $i = rand(0,count($bannerurl)-1);
    echo '<img src=''.$bannerurl[$i].''>';
    ?>

    du hast das fette vergessen ;)



    hast recht hab einfach kopiert und dann eingesetzt!

    THX AN ALLE DIE MIR GEHOLFEN HABEN!

    MfG Matze
  9. Autor dieses Themas

    c****4

    Wisst ihr auch wie man die Bilder noch unterschiedlich verlinken kann?
    so das zum beispiel der abnner von Lima auch zu Lima verlinkt is und der von web.de zu web.de...

    Wie gesagt bismjetzt siehts durch eure gerngesehene Hilfe so aus: ^^

    <?
    $bannerurl[] = "/images/1.jpg";
    $bannerurl[] = "/images/2.jpg";
    $i = rand(0,count($bannerurl)-1);
    echo "<img src='".$bannerurl[$i]."'>";
    ?>

  10. a**e

    du kannst einfach noch ein zweites Array hinzuf?gen:
    $links[] = "http://google.de/";
    $links[] = "link2";


    Dann ?nderst du das bisherige Skript einfach ab:

    $bannerurl[] = "/images/1.jpg";
    $bannerurl[] = "/images/2.jpg";
    $i = rand(0,count($bannerurl)-1);
    echo "<a href='".$links[$i]."'><img src='".$bannerurl[$i]."'></a>";


    und schon ist das kleine Rotationsskript fertig.

    mfg
    Arve

    Beitrag ge?ndert am 26.12.2005 18:50 von arve
  11. Autor dieses Themas

    c****4



    arve schrieb:
    du kannst einfach noch ein zweites Array hinzuf?gen:
    $links[] = 'http://google.de/';
    $links[] = 'link2';


    Dann ?nderst du das bisherige Skript einfach ab:

    $bannerurl[] = '/images/1.jpg';
    $bannerurl[] = '/images/2.jpg';
    $i = rand(0,count($bannerurl)-1);
    echo '<a href=''.$links[$i].''><img src=''.$bannerurl[$i].''></a>';


    und schon ist das kleine Rotationsskript fertig.

    mfg
    Arve

    Beitrag ge?ndert am 26.12.2005 18:50 von arve


    JOa genau! THx nur noch eins dann nerv ich euch nicht mehr ;-)
    Wie kann man das machen das es den lInk uin einem neuen Fenster ?ffnet? Ich habs mit target="_blank" nach dem href probiert geht aber net :-((...
    plz letztes mal Help
  12. r*****r

    $links[] = 'http://google.de/';
    $links[] = 'link2';
    
    $bannerurl[] = '/images/1.jpg';
    $bannerurl[] = '/images/2.jpg';
    
    $i = rand(0,count($bannerurl)-1);
    
    echo '<a href="'.$links[$i].'" target="_blank"><img src="'.$bannerurl[$i].'"></a>';


    so sollte es funtionieren, musst halt aufpassen, das des net zu dem link dazu reintust, sondern ert danach, aber och vor dem >

    ich hab mal all eanf?hrungszeichen spo hingemacht, das diese dopellten nachher im HTML-Code zu sehen sind
  13. Autor dieses Themas

    c****4


    $links[] = 'http://google.de/';
    $links[] = 'link2';
    
    $bannerurl[] = '/images/1.jpg';
    $bannerurl[] = '/images/2.jpg';
    
    $i = rand(0,count($bannerurl)-1);
    
    echo '<a href="'.$links[$i].'" target="_blank"><img src="'.$bannerurl[$i].'"></a>';


    so sollte es funtionieren, musst halt aufpassen, das des net zu dem link dazu reintust, sondern ert danach, aber och vor dem >

    ich hab mal all eanf?hrungszeichen spo hingemacht, das diese dopellten nachher im HTML-Code zu sehen sind


    so hab ichs ja aber so funktz das net :-(


    //->
    Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in /usr/export/www/hosting/ct2004/index.php on line 101



    <?
    $links[] = "http://www.dexgo.com/";
    $links[] = "http://www.chronixradio.com/";
    $bannerurl[] = "/images/1.jpg";
    $bannerurl[] = "/images/2.jpg";
    $i = rand(0,count($bannerurl)-1);
    echo "<a href='".$links[$i]."' target="_blank"><img src='".$bannerurl[$i]."'></a>";
    ?>

    Beitrag ge?ndert am 26.12.2005 19:17 von ct2004
  14. r*****r

    Testdatei:
    http://ruehrer.xardas.lima-city.de/test.php


    dieser Code:

    $links[] = 'http://google.de/';
    $links[] = 'link2';
    
    $bannerurl[] = '/images/1.jpg';
    $bannerurl[] = '/images/2.jpg';
    
    $i = rand(0,count($bannerurl)-1);
    
    echo '<a href="'.$links[$i].'" target="_blank"><img src="'.$bannerurl[$i].'"></a>';


    gug dir dein script nochmal genau an! vielleich t hast du das ganze ja blos an die falsche stele gesetzt


    edit: zu sp?t :slant:


    Beitrag ge?ndert am 26.12.2005 19:22 von ruehrer
  15. Autor dieses Themas

    c****4

    ahhh jetzt! jetzt gehts ich wei? den fehler zwar net ich hab das jetzt einfach kopiert...

    THX an alle... so das wars mit nerven ^^
  16. a**e


    Der Fehler lag in dem Vermischen von doppelten Anf?hrungszeichen (") mit einfachen Anf?hrungszeichen (').
    Ich habe mir angew?hnt in Php doppelte und in Html einfache Anf?hrungszeichen zu verwenden.
    Bei dir scheint es genau umgekehrt zu sein.

    Ich hatte wie folgt begonnen: echo "";
    Dann kam es zur Vermischung beim Einf?gen von target ="_blank".
    H?ttest du target\"_blank\" eingef?gt, dann h?ttest du auch keine Fehlermeldung erhalten.

    mfg
    Arve
  17. Autor dieses Themas

    c****4

    achso...
    gut werd ich mir merken!
    thx
  18. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!