Autor | Zpráva | ||
---|---|---|---|
Johny_r Profil * |
#1 · Zasláno: 2. 10. 2006, 11:12:29
Zdravím,
potřeboval bych poradit se skriptem, který by vzal daný počet náhodně vybraných obrázků z adresáře a v náhodném pořadí je zobrazil na stránce. Dopátral jsem se, že by to asi mělo jít nějak přes pole, ale moc do toho nevidím, takže ocením každou radu. Díky moc. |
||
Casero Profil |
#2 · Zasláno: 2. 10. 2006, 16:06:48
Johny_r
no tak si načti ty obrázky z adrsáře do pole..a pak pomocí randomu vybírej, no avybereš třeba pět čísel, a pole s tím určitým číslem zobrazíš |
||
Johny_r Profil |
#3 · Zasláno: 2. 10. 2006, 16:09:25
Díky,
tak nějak jsem se to taky někde dočet. Moh bys mi nějak přiblížit jak na to? S PHP zatím moc neumím :-( Dík moc. |
||
Casero Profil |
#4 · Zasláno: 2. 10. 2006, 16:47:01
Johny_r
zkus pohledat, bohužel nemám čas ti vysvětlovat celý php..nebo napsat ten skript...prostě základ je načtení obrázku bz adresáře..a pak fce rand vybrat nějaký čísla..a podle těch , musíš se podívat jan na pole, vybereš ty obrázky |
||
johny_r Profil * |
#5 · Zasláno: 2. 10. 2006, 16:54:10
Celý php mi vysvětlovat nemusíš, tak mimo zase nejsem :-) Díky, tohle mi pomohlo.
|
||
Johny_r Profil |
#6 · Zasláno: 2. 10. 2006, 17:00:47
mimochodem, teď mne tak napadlo. Proč to dělat přes pole? stačí, když nechám v cyklu xkrát vypsat <img> tag a v názvu souboru bude pomocí funkce rand dosazovaný náhodný číslo. Soubory se budou jmenovat třeba img_1.jpg - img_99.jpg. To by mělo taky fungovat, ne? To pole pomůže v případě, kdy se ty obrázky jmenujou různě nebo když se mění jejich počet (to by se pak jako hormí limit do rand musel dát aktuální počet prvků v poli). Je to tak? Díky
|
||
tiso Profil |
#7 · Zasláno: 2. 10. 2006, 17:31:19
Johny_r
Je. |
||
pavel prochazka.zde.cz Profil * |
#8 · Zasláno: 2. 10. 2006, 18:17:46
zpusobu je spousta.... Klidne muzes cislovat ty fotky jako obr1, obr2, obr3 atd....
Tak se budou jmenovat a ty si vygenerujes jen nahodne cislo pro nahodny pocet obrazku, prvni bude treba pocet obrazku a to zadas do cyklu, tolikrat se bude oper nahodny vyber provadet.... Opet budes generovat nahodna cisla a potom jen uz si sestavis nazev toho obrazku z toho cisla.... treba takto.... $sNazevObrazku = "obr". $nNahodneCislo ."jpg"; a mas to je to jednoduche a funkcni.... staci jen si pohlidat aby ten soubor existoval a nesmy bejt mazi cislama dira.... A ve scriptu staci udrzovat jen maximalni cislo tech obrazku..... |
||
Johny_r Profil |
#9 · Zasláno: 3. 10. 2006, 11:18:46 · Upravil/a: Johny_r
Tak jsem si zatím udělal testovací skript, který vypadá takhle. Řešení je to jednoduché a funkční:
<? for ($i=1; $i<=3; $i++) { $random = rand(1,5); echo ('<img src="img/img_'.$random.'.jpg" /><br />'); } ?> hází mi 3 náhodné obrázky z pěti. To je fajn, ale potřeboval bych to vylepšit o to, aby vybíral vždycky každý obrázek jiný. Takže aby v druhém cyklu vyloučil z výběru to, co vybral v prvním cyklu. Jde to nějak? Napadá mě akorát poněkud otrocké řešení (i když v mém případě použitelné), že si ty obrázky rozdělím do skupin (třeba 10 skupin po 3 obrázcích) a udělám si 10 proměnných, jejichž obsahem bude vždy funkce rand s různým rozsahem. Něco na způsob: $random1 = rand(1,3); $random2 = rand(4,6); $random3 = rand(7,9); a tak dále. A pak nebudu ty obrázky zobrazovat cyklem, ale vypíšu ručně 10 tagů img, kde v každém bude jako číslo obrázku jiná proměnná. Mělo by to fungovat, ale asi to není optimální řešení :-) Díky moc. |
||
Kajman_ Profil * |
#10 · Zasláno: 3. 10. 2006, 11:24:17
|
||
Johny_r Profil |
#11 · Zasláno: 3. 10. 2006, 11:51:36 · Upravil/a: Johny_r
Díky moc. Takže jsem skript předělal takhle (zatím tahám z pěti obrázků).
<? $input = array("1", "2", "3", "4", "5"); $arrayrandom = array_rand($input, 3); for ($i=0; $i<=2; $i++) { $random = rand(1,5); echo ('<img src="img/img_'.$input[$arrayrandom[$i]].'.jpg" /><br />'); } ?> Lepší by ale asi bylo natáhnout do pole rovnou názvy souborů z adresáře a nemusel bych řešit, kolik jich tam je, jak se jmenujou atd. Ale nevím, jak na to. Můžete mě nasměrovat? Jakou funkci na to použít? Se souborama jsem zatím nepracoval, takže jsem mimo :) Díky moc. |
||
pavel prochazka.zde.cz Profil * |
#12 · Zasláno: 3. 10. 2006, 18:56:07
zde mas navod na precteni nazvu souboru v rootu....
//cyklus ktery projde vsechny soubory v rootu. if ($handle=opendir('.')) { while ($file = readdir($handle)){ if (is_file($file)and is_readable($file) and file_exists($file)) { $polozky[count($polozky)] = $file; } } closedir($handle); sort($polozky); //V promene: $polozky je jmeny seznam souboru pro hledani... } |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0