Autor Zpráva
Matess
Profil *
Prosím poraďte mi script, který vybere ze složky náhodnou fotografii a zobrazí ji.

Fotky ukládám do složky foto.
Nepoužívám žádno DB.

Vůbec nevím jak mám postupovat.

Děkuji mnohokrát.
Icka
Profil *
$slozka = "slozka";
$i = 0;
$dir = opendir($slozka);
while($file = readdir($dir)) {

if (is_file($slozka . "/" . $file)
{
$soubory[$i++] = $file;
}
}
closedir($dir);

if (count($soubory) >= 1) {

// nabízím dvě varianty náhodného souboru
// buďto takto:
shuffle($soubory);
$img = $soubory[0];

// nebo třeba takto:
$img = $soubory[rand(0,count($soubory) - 1)];
}

echo "<img src=\"" . $slozka . "/" . $img . "\">;

// variant je samozřejmě mnohem více...

}

psal jsem to z hlavy, ale snad to pofrčí
Icka
Profil *
oprava:

$slozka = "slozka";
$i = 0;
$dir = opendir($slozka);
while($file = readdir($dir)) {
if (is_file($slozka . "/" . $file)) {
$soubory[$i++] = $file;
}
}
closedir($dir);

if (count($soubory) >= 1) {

// nabízím dvě varianty náhodného souboru
// buďto takto:
// shuffle($soubory);
// $img = $soubory[0];

// nebo třeba takto:
$img = $soubory[rand(0,count($soubory) - 1)];
echo "<img src=\"" . $slozka . "/" . $img . "\">";
}
Majkl578
Profil
$files = glob('./slozka/s/fotkama/*');
echo "<img src=\"" . $files[array_rand($files)] . "\">";
Icka
Profil *
jj, nebo tak..
Ovšem fnce Glob() není tak široce podporována.. :-(
Matess
Profil *
Majkl578
Perfektní děkuji!

Icka
Ovšem fnce Glob() není tak široce podporována.. :-(
Ale mě funguje. :-)

I Vám děkuji.
AM_
Profil
Místo funkce glob() se nabízí scandir(), obzvlášť když je místo jména souboru pouze "*".
Jinak shuffle bych označil za neefektivní, pokud chceš vybrat jen jeden náhodný prvek.
Icka
Profil *
Nojoo, scandir() mě nějak uniklo.. Díky..
Souhlasím že shuffle není pro jeden náhodný prvek tak efektivní.. ;-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: