Autor | Zpráva | ||
---|---|---|---|
johnl Profil |
#1 · Zasláno: 22. 3. 2009, 18:45:47
Dobrý den, chtěl bych si na svém novém webu vytvořit malou fotogalerii kde by se jako náhled vždy ukázal náhodný obrázek. Už jsem tady o tom něco četl ale vůbec jsem to nepochopil (ani mi to nešlo) mám několik (asi 20) obrázků s různejma názvama a chci aby se vždy jeden náhodně zobrazil? Děkuji za radu.
|
||
gogy27 Profil |
#2 · Zasláno: 22. 3. 2009, 18:59:23
$obrazok = rand (1, 20);
a tu vyberes z db (alebo nwm kde to mas ulozene) obrazok s WHERE = $obrazok ;) |
||
keeehi Profil |
nebo javascript
foto = new Array( "<img src='img/01.jpg'>", "<img src='img/02.jpg'>", "<img src='img/03.jpg'>", "<img src='img/04.jpg'>"); i = Math. floor(Math. random()*foto. length); document. write(foto1[i]); |
||
Jiří Bednář Profil |
#4 · Zasláno: 22. 3. 2009, 19:25:34
Pokud tedy umis php (je to jedno), tak zde mas kod:
<? $obrazek = rand (1, 20); ?> <img src="<?echo $obrazek;?>.jpg"> Budes muset vsechny sve obrazky prejmenovat prejmenovat a dat jim cislo od 1 do 20 a ve stejném formátu (jpg, bmp, gif) |
||
Jiří Bednář Profil |
#5 · Zasláno: 22. 3. 2009, 19:33:25 · Upravil/a: Jiří Bednář
Nebo trochu jinak, ale zachovas si nazvy obrazku:
<? $cislo = rand (1, 20); $img['1'] = "nazev_obrazku1.jpg"; $img['2'] = "nazev_obrazku2.jpg"; $img['3'] = "nazev_obrazku3.jpg"; $img['4'] = "nazev_obrazku4.jpg"; $img['5'] = "nazev_obrazku5.jpg"; $img['6'] = "nazev_obrazku6.jpg"; $img['7'] = "nazev_obrazku7.jpg"; $img['8'] = "nazev_obrazku8.jpg"; $img['9'] = "nazev_obrazku9.jpg"; $img['10'] = "nazev_obrazku10.jpg"; $img['11'] = "nazev_obrazku11.jpg"; $img['12'] = "nazev_obrazku12.jpg"; $img['13'] = "nazev_obrazku13.jpg"; $img['14'] = "nazev_obrazku14.jpg"; $img['15'] = "nazev_obrazku15.jpg"; $img['16'] = "nazev_obrazku16.jpg"; $img['17'] = "nazev_obrazku17.jpg"; $img['18'] = "nazev_obrazku18.jpg"; $img['19'] = "nazev_obrazku19.jpg"; $img['20'] = "nazev_obrazku20.jpg"; ?> <img src="<?echo $img[$cislo];?>"> Misto nazev_obrazkuXX.jpg - das adresu obrazku Pokud bys chtel pridat dalsi obrazek, tak pridas dalsi $img['XX'] = "nazev_obrazkuXX.jpg"; a jen zmenis cislo, nazv a cislo 20 v rand (1, 20); na jine. |
||
Johnik Profil |
#6 · Zasláno: 22. 3. 2009, 20:06:33 · Upravil/a: Johnik
Já bych to dal takto:
<?php echo "nazev_obrazku".rand(1,20).".jpg"; ?> |
||
Časová prodleva: 2 měsíce
|
|||
valecekm Profil |
Zdravim vsechny. Sice je to jiz neaktualni tema diskuse, ale kdyby nekdo hledal neco aby se nemusel starat o rucni prejmenovavani obrazku v poli a prepisovani indexu a dalsi takove celkem otravne veci, tak tady pisu skript, kterej zkontroluje soubory ve slozce jestli jsou obrazky(podle pripony souboru) a nasledovne obrazky nacte do pole a vybere jeden nahodnej. Jsme zacatecnik, takze skusenejsi prosim omluvte me pripadne chyby a pripadne ty kriticke opravte :-). Podminka je ze se v nazvu obrazku nesmi vyskytovat znak tecky (.). Ale to jde pri uploadu souboru osetrit. Skript sem pisi hlavne pro ostatni, co se nechou otravovat s prepisovanim indexu v poli atd. A skusenejsi popripade omluvte chybky nebo je opravte. Jeste poznamka:Pokud budou ve slozce nejake jine ostatni soubory, ktere nebudou obrazky,tak se nic nedeje. Do pole se ulozi pouze obrazky a s ostatnima souborama se nic delat nebude. Pokud by chtel nekdo jen urcite typy obrazku a nebo uplne jine typy soubory,tak si staci upravit pole pripon. Fantazii se meze nekladou :-)...
<?php $cesta="nejakaslozka/slozkaobrazky"; // cesta k souborum-obrazkum (slozka) $slozka = dir($cesta); // pole podporovanych pripon obrazku $pole_pripon=array('png','bmp','gif','jpg','jpeg','PNG','BMP','GIF','JPG','JPEG'); $pole_souboru = array(); // vytvori zatim prazdne pole pro soubory while($soubor=$slozka->read()) /* precte soubory ve slozce */{ if ($soubor=="." || $soubor=="..") continue; // vylouci stejny a nadrazeny adresar $soubor_n = explode(".", $soubor); // rozdeli priponu a nazev souboru do pole $pripona = $soubor_n[1]; // pripona souboru foreach($pole_pripon as $pripona_z) // prohledani pole pripon { // kontrola souboru jestli je soubor obrazek (podle pripony), pokud ano pokracuj if ($pripona==$pripona_z){$pole_souboru[] = $soubor; // ulozi nazvy souboru do predem vytvoreneho pole }}} $obrazek_vyber = array_rand(array_flip($pole_souboru),1); // vybere 1 nahodny obrazek z pole obrazku $obrazek_nahod = $cesta."/".$obrazek_vyber; // vytvori kompletni cestu k obrazku echo '<img src="'.$obrazek_nahod.'" border="0">'; // zobrazi nahodny obrazek ?> |
||
Časová prodleva: 5 měsíců
|
|||
valecekm Profil |
#8 · Zasláno: 23. 10. 2009, 20:15:56
Update:
valecekm: „Zdravim vsechny. Sice je to jiz neaktualni tema diskuse,...“ Omlouvám se všem, kteří někdy využili tohoto skriptu a nefungoval jim na freehostech, proto to napravuji: Problém nastal na webzdarma a jiných fr.host. s: <?php // cast skriptu .... $obrazek_vyber = array_rand(array_flip($pole_souboru),1); // vybere 1 nahodny obrazek z pole obrazku $obrazek_nahod = $cesta."/".$obrazek_vyber; // vytvori kompletni cestu k obrazku // cast skriptu .... ?> Změnit na: <?php // cast skriptu .... shuffle($pole_souboru); // zamichame pole $obrazek_nahod = $cesta."/".$pole_souboru[0]; // vytvori kompletni cestu k obrazku // cast skriptu .... ?> Omlouvám se také za update, ale nerad bych, aby se na mne někdo potom díval škaredě, tak sem to raděj opravil :-). Podotýkám, problém se většinou vyskytuje pouze na freehostech. |
||
Časová prodleva: 3 měsíce
|
|||
nekrox Profil * |
#9 · Zasláno: 8. 1. 2010, 16:49:01
valecekm
díky, něco podobného jsem hledal a čekal jsem jestli někoho napadne, že ve složce může být třeba tisíc fotek a je tedy nesmysl je přejmenovávat, případně, že ty fotky jsou zároveň součásti nějaké str a je tedy nesmyslné je přejmenovávat (např. filmová databáze). Ještě jednou dík. |
||
nekrox Profil * |
nekrox:
Našel jsem ještě něco jednoduššího. <?php $a = Array(); //pole, ktere bude obsahovat seznam nazvu fotek $b = dir('fotky'); //otevre slozku while ($c = $b->read()) //projde vsechny soubory a vybere jpg fotky if (substr_count($c, ".jpg") > 0) $a[] = $c; echo '<img src="fotky/'.$a[rand(0, count($a)-1)].'">'; //vypise fotku ?> |
||
Časová prodleva: 14 dní
|
|||
Tydou Profil * |
#11 · Zasláno: 22. 1. 2010, 12:16:25
ahoj, poradite mi jak napsat kod pro zobrazeni vetsi velikosti nahodneho obrazku? mam v okne dany tento kod ktery normalne funguje ale jeste bych chtel aby mi po kliknuti na nej zobrazilo jeho velky format
<img src="cesta k obrazku/obr<?php echo mt_rand(1,10); ?>.jpg" width="186" height="139" border="0"> </a> diky |
||
johnl7 Profil * |
#12 · Zasláno: 22. 1. 2010, 16:04:33
Tydou:
Myslíš: <a href="cesta k obrazku/obr<?php echo mt_rand(1,10); ?>.jpg"><img src="cesta k obrazku/obr<?php echo mt_rand(1,10); ?>.jpg" width="186" height="139" border="0"></a> Jenom nechápu toto „<img src="cesta k obrazku/obr<?php echo mt_rand(1,10); ?>.jpg" width="186" height="139" border="0"></a>“ Proč tam máš </a>? |
||
vynalezce Profil |
#13 · Zasláno: 22. 1. 2010, 16:16:26 · Upravil/a: vynalezce
johnl7:
ale to vypíše třeba: <a href="cesta k obrazku/obr1.jpg"><img src="cesta k obrazku/obr5.jpg" width="186" height="139" border="0"></a> |
||
keeehi Profil |
#14 · Zasláno: 22. 1. 2010, 16:32:28
Takto by to mělo fungovat správně:
<?php $prom=mt_rand(1,10);?> <a href="cesta k obrazku/obr<?php echo $prom; ?>.jpg"><img src="cesta k obrazku/obr<?php echo $prom; ?>.jpg" width="186" height="139" border="0"></a> |
||
Tydou Profil * |
#15 · Zasláno: 22. 1. 2010, 17:59:08
johnl7: to </a> sem tam nahral omylem, jinak jak pise vynalezce nahled bude jiny nez zobrazovany obrazek, to jsem uz taky tak mel
keeehi: zkusim, pak napisu :-) diky za rady |
||
Tydou Profil * |
#16 · Zasláno: 22. 1. 2010, 18:15:33
keeehi: to je přesně co jsem potřeboval, díky
|
||
Časová prodleva: 14 let
|
0