Jou
Etusivulle pitäs saada homma joka echottaa satunnaisen kuvan joka on osoitteessa esim. /2007/10/22/kuva.jpg tai /2006/06/13/kuva2.jpg. Mikä se on se mystinen koodi joka käy läpi kansion ja kaikki sen alihakemistot ja tekee niist vaik listan josta voidaan sit arpoo kuva.
Eli yksinkertaisesti mikä koodi käy läpi hakemiston ja sen kaikki alihakemistot??? Onko siihen mitään yksinkertaista tapaa?????
glob, is_dir, rand. Varmasti tuommoinen on jossakin valmiinakin, avainsanoja "php", "recursive", "directory".
Tuossa on esimerkki, joka noutaa kuvat siitä hakemistosta, jossa skripti suoritetaan, sekä kaikista alihakemistoista.
<?php function haku($polku, $tyypit) { $hak = opendir($polku); $taulu = array(); while (($nimi = readdir($hak)) !== false) { if ($nimi == "." || $nimi == "..") continue; if (is_dir($polku . $nimi)) { $taulu = array_merge($taulu, haku($polku . $nimi . "/", $tyypit)); } elseif (in_array(strtolower(substr($nimi, -4)), $tyypit)) { $taulu[] = $polku . $nimi; } } closedir($hak); return $taulu; } $kuvat = haku("./", array(".png", ".gif", ".jpg")); foreach ($kuvat as $kuva) { $kuva = substr($kuva, 2); echo "<img src=\"$kuva\"><br>$kuva<hr>"; } ?>
Hakemistoja ei kyllä kannata koluta joka kerta, kun sivu ladataan, vaan kuvien lista kannattaa koostaa vain, kun uusia kuvia tulee tai vanhoja poistuu. Sitten kun kuvien nimet ovat taulukossa, kuvan voi arpoa vaikka funktiolla array_rand.
Aihe on jo aika vanha, joten et voi enää vastata siihen.