Avatar billede syswatch Novice
30. juli 2003 - 16:03 Der er 9 kommentarer og
1 løsning

Vælge en tilfældig fil i en mappe

Jeg mangler et simplet script der kan vælge en tilfældig .jpg fil fra en forudbestemt mappe.

Jeg har prøvet mig frem, men det jeg er kommet frem til virker ikke ordentlig.
Avatar billede detox Nybegynder
30. juli 2003 - 17:31 #1
Hvis du kun har JPG filer i din mappe, så kan du bruge den her:
<?
function Filer($dir) {
    if ($directory_handle = opendir($dir)) {
        while (false !== ($file = readdir($directory_handle))) {
            if (is_file($file)) {
                $fil_liste[] = $file;
            }
        }
        closedir($directory_handle);
        return ($fil_liste);
    } else {
    return false;
}
}
$dir = "MyDir";
if ($filer = Filer($dir)) {
    echo 'Tilfældig fil: ' . $filer[mt_rand(0,count($filer)-1)] . '<br>';
}
?>
Avatar billede syswatch Novice
30. juli 2003 - 17:35 #2
Årh, den var måske lidt kringlet.
Den skulle gerne vise billedet. sådan at man fx kunne skrive sådan her:
<img src=$mappe/$billede>
Avatar billede detox Nybegynder
30. juli 2003 - 17:35 #3
Ellers brug den her:
--------------------
<?
function Filer($dir) {
    if ($directory_handle = opendir($dir)) {
        while (false !== ($file = readdir($directory_handle))) {
            if (substr($file,-4) == ".jpg") {
                $fil_liste[] = $file;
            }
        }
        closedir($directory_handle);
        return ($fil_liste);
    } else {
    return false;
}
}
$dir = "MyDir";
if ($filer = Filer($dir)) {
    echo 'Tilfældig fil: ' . $filer[mt_rand(0,count($filer)-1)] . '<br>';
}
?>
Avatar billede syswatch Novice
30. juli 2003 - 17:38 #4
Jamen hvordan implementer jeg den i min <img src=  ???
Avatar billede detox Nybegynder
30. juli 2003 - 17:47 #5
Prøv sådan her, der behøver du bare indsætte stien til din mappe med billeder:
-----
<?
function Vis($dir) {
    if ($directory_handle = opendir($dir)) {
        while (false !== ($file = readdir($directory_handle))) {
            if (substr($file,-4) == ".jpg") {
                $filer[] = $file;
            }
        }
        closedir($directory_handle);
        echo "<img src='" .$dir. "/" .$filer[mt_rand(0,count($filer)-1)]. "'>";
    }
}
Vis('MyDir');
?>
Avatar billede syswatch Novice
30. juli 2003 - 18:09 #6
Nu er jeg nok lidt besværlig, men er det ikke muligt at få det hele til at ende op med en variable der indeholder det tilfældige billedes filnavn ?

For eller kan jeg ikke rigtig få det til at hænge sammen med min anden kode.
Avatar billede syswatch Novice
30. juli 2003 - 18:19 #7
Ok... jeg har næsten fået det til at virke med den sidste kode... men hvorfor virker det ikke når man bruger en variable i MyDir ???? Sti'en kommer nemlig i en variable...
Avatar billede detox Nybegynder
30. juli 2003 - 18:25 #8
Jo, det er jo nærmest det den første gør. Jeg troede bare du vil have vist billedet i stedet. Du kan bare omskrive det sidste til:
----------
<?
function Filer($dir) {
    if ($directory_handle = opendir($dir)) {
        while (false !== ($file = readdir($directory_handle))) {
            if (substr($file,-4) == ".jpg") {
                $fil_liste[] = $file;
            }
        }
        closedir($directory_handle);
        return ($fil_liste);
    } else {
    return false;
}
}
$dir = "MyDir";
if ($filer = Filer($dir)) {
    $billede = $filer[mt_rand(0,count($filer)-1)];
}
?>
----------
men jo du burde osse kunne bruge en variabel til at angive stien.
Avatar billede syswatch Novice
30. juli 2003 - 18:26 #9
Smider du ikke lige et svar.... Jeg har fået det til at virke som det skal... Mange tak for hjælpen, du får lige pointene i aften.
Avatar billede detox Nybegynder
30. juli 2003 - 18:31 #10
Selv tak... c",)
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