Avatar billede brinck10 Nybegynder
28. februar 2007 - 15:46 Der er 3 kommentarer og
1 løsning

find tilfældig sti til billedet.

Hej eksperter.

Endnu en gang har jeg brug for jeres hjælp, ser i. Jeg er igang med at lave en funktion der returnere en tilfældig sti til et billede. Den skal gå ind i 3 mapper, også i den sidste finde et tilfældigt billede. Min kode ser således ud.

<?
function getRandomPath($pathStart, $times){
    for($i = 0; $i < $times;$i++){
        $odir = opendir($pathStart);
        $cdir = count(readdir($odir));
        $r = rand(0, $cdir);
        $whilei = 0;
        while(false !== ($rdir = readdir($odir))){
            if($whilei = $r){
                $path[$i] = $pathStart ."/". $rdir ."/";
                break;
            }else{
                $whilei++;
            }
        }
        closedir($odir);
        $odir = opendir($path[$i]);
        $cdir = count(readdir($odir));
        $r = rand(0, $cdir);
        $whilei = 0;
        while(false !== ($rdir = readdir($odir))){
            if($whilei = $r){
                $path[$i] .= $rdir ."/";
                break;
            }else{
                $whilei++;
            }
        }
        closedir($odir);
        $odir = opendir($path[$i]);
        $cdir = count(readdir($odir));
        $r = rand(0, $cdir);
        $whilei = 0;
        while(false !== ($rdir = readdir($odir))){
            if($whilei = $r){
                $path[$i] .= $rdir;
            }else{
                $whilei++;
            }
        }
    }
            echo $path[1]; // kunne også have været 2 eller 3 eller 4
}
?>

Når jeg så kalder den med getRandomPath("gallery/content", 3) fx. Returnnere den "gallery/content/../../ også alt mappens indhold.
Hvad gør jeg forkert?
Et andet ting som jeg ikke ved hvordan jeg skal lave, er hvordan jeg returnere alle stierne, i et array.

Håber i kan hjælpe :)
/Frederik
Avatar billede mcardle Nybegynder
28. februar 2007 - 19:02 #1
Her er et script der gør det du gerne vil have:

<?php

$dir = dir("images");

while (($file = $dir->read()) !== false){
    if($file != "thumb" && $file != "." && $file != ".."){
        $pics[] = $file;
    }
}

$dir->close();

$pics_total = count($pics)-1;
$i = rand(0,$pics_total);

echo '<img src="images/'.$pics[$i].'" />';

?>
Avatar billede brinck10 Nybegynder
28. februar 2007 - 19:19 #2
Nix ikke helt. Da den skal lave en sti, en tilfældig en, hvor den først går ind i en mappe der hedder gallery, så går den ind i content. Inde i content-mappen, finder den en tilgældig mappe, og går videre derfra så nu er stien: gallery/content/tilfældig/
derinde, i den tilfældige mappe, skal den finde endnu en under mappe:
gallery/content/tilfældig/tilfældig/ og så til sidst et billede ;) Det er en lang tilfældig en, så ved ikke lige helt hvordan.

(den færdige sti:) gallery/content/tilfældig-mappe/tilfældig-undermappe/billedet.jpg

Hvordan gøres det uden et langt script?

/Frederik
Avatar billede mcardle Nybegynder
28. februar 2007 - 20:01 #3
Det er et større projekt med alle de undermapper...
Avatar billede brinck10 Nybegynder
01. marts 2007 - 15:59 #4
Har selv fundet ud af det.
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