Avatar billede kakster Nybegynder
22. januar 2008 - 19:09 Der er 7 kommentarer og
1 løsning

billede der skifter

Hej Eksperter

Jeg har flg. sctipt:

$path = 'gfx/rotation/';
if ($handle = opendir($path)) {
    $input = array();
    while (false !== ($file = readdir($handle))) {
        $input[] = $path . $file;
    }
    closedir($handle);
    shuffle($input);
    echo '<img src="'.$input[0].'" border=1" width="150" height="100" border="1"><br/><br/>';
    echo '<img src="'.$input[1].'" border=1" width="150" height="100" border="1"><br/><br/>';
    echo '<img src="'.$input[2].'" border=1" width="150" height="100" border="1"><br/><br/>';
}

Mit problem er at nogen gange kan jeg risikere at den ikke viser nogle billeder. Der ligger flere end 3 billeder i biblioteket.

Den skulle gerne vise 3 billeder konstant.
Avatar billede coderdk Praktikant
22. januar 2008 - 22:41 #1
Prøv:

    $path = 'gfx/rotation/';
    $input = glob( $path . '*' );
    shuffle($input);
    echo '<img src="'.$input[0].'" border=1" width="150" height="100" border="1"><br/><br/>';
    echo '<img src="'.$input[1].'" border=1" width="150" height="100" border="1"><br/><br/>';
    echo '<img src="'.$input[2].'" border=1" width="150" height="100" border="1"><br/><br/>';

readdir tager nemlig også . og .. med som filer... En rettelse til dig script kunne være:

$path = 'gfx/rotation/';
if ($handle = opendir($path)) {
    $input = array();
    while (false !== ($file = readdir($handle)) && is_file( $path . $file ) ) {
        $input[] = $path . $file;
    }
    closedir($handle);
    shuffle($input);
    echo '<img src="'.$input[0].'" border=1" width="150" height="100" border="1"><br/><br/>';
    echo '<img src="'.$input[1].'" border=1" width="150" height="100" border="1"><br/><br/>';
    echo '<img src="'.$input[2].'" border=1" width="150" height="100" border="1"><br/><br/>';
}
Avatar billede kakster Nybegynder
23. januar 2008 - 09:10 #2
hej coderdk.

det virker desværre ikke. nu viser den slet ikke nogen billeder. når jeg viser src. bliver tagen <img src="" border osv.
Avatar billede coderdk Praktikant
23. januar 2008 - 09:15 #3
Prøv:

    $path = 'gfx/rotation/';
    $input = glob( $path . '*' );
    var_dump( $input );

og se hvad den skriver...
Avatar billede kakster Nybegynder
23. januar 2008 - 10:17 #4
array(8) { [0]=> string(25) "gfx/rotation/DCP_3864.jpg" [1]=> string(25) "gfx/rotation/DCP_3871.jpg" [2]=> string(25) "gfx/rotation/DCP_3875.jpg" [3]=> string(25) "gfx/rotation/IMG_0318.jpg" [4]=> string(25) "gfx/rotation/IMG_0320.jpg" [5]=> string(25) "gfx/rotation/IMG_0322.jpg" [6]=> string(25) "gfx/rotation/IMG_0323.jpg" [7]=> string(25) "gfx/rotation/IMG_0324.jpg"
Avatar billede coderdk Praktikant
23. januar 2008 - 10:19 #5
Well, så burde mit første forslag virke ;) Du mangler bare et " ved border:

    $path = 'gfx/rotation/';
    $input = glob( $path . '*' );
    shuffle($input);
    echo '<img src="'.$input[0].'" border="1" width="150" height="100" border="1"><br/><br/>';
    echo '<img src="'.$input[1].'" border=1" width="150" height="100" border="1"><br/><br/>';
    echo '<img src="'.$input[2].'" border=1" width="150" height="100" border="1"><br/><br/>';
Avatar billede kakster Nybegynder
23. januar 2008 - 10:33 #6
jeg skal bruge flg. kode ik:

$path = 'gfx/rotation/';
if ($handle = opendir($path)) {
    $input = array();
    while (false !== ($file = readdir($handle)) && is_file( $path . $file ) ) {
        $input[] = $path . $file;
    }
    closedir($handle);
    shuffle($input);
    echo '<img src="'.$input[0].'" width="150" height="100" border="1"><br/><br/>';
    echo '<img src="'.$input[1].'" width="150" height="100" border="1"><br/><br/>';
    echo '<img src="'.$input[2].'" width="150" height="100" border="1"><br/><br/>';
}

eller skal jeg kune bruge det her:
$path = 'gfx/rotation/';
    $input = glob( $path . '*' );
    shuffle($input);
    echo '<img src="'.$input[0].'" border="1" width="150" height="100" border="1"><br/><br/>';
    echo '<img src="'.$input[1].'" border=1" width="150" height="100" border="1"><br/><br/>';
    echo '<img src="'.$input[2].'" border=1" width="150" height="100" border="1"><br/><br/>';
Avatar billede kakster Nybegynder
23. januar 2008 - 10:42 #7
yes sir.. så prøvede jeg det sidste.. mente bare at jeg også skulle have if-sætningen med. tak for svar coderdk. :)
Avatar billede coderdk Praktikant
23. januar 2008 - 11:34 #8
Yesh, det er kun den sidste del du skal bruge :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester