Autor Zpráva
matesek
Profil
Takové téma tady jistě bylo , ale zeptám se tedy znovu , jaký kód zjistí , kolik souborů ( fotek ) je v dané složce . Mám stránky , kde mám random obrázek a nechce se mi přepisovat kód pokaždé , když vložím novou fotku . Dalo by se to nějak udělat , že zjistí počet položek ve složce a pak to dá do proměnné ? Ta proměnná by byla max. pro Random číslo , podle kterého by se jmenoval obrázek ?

Nynější kód :

<?php
$cislo=Rand(1,44);
echo"
<a rel=nofollow href=\"foto/$cislo.jpg\" target=_blank>
<img src=\"foto/$cislo.jpg\" title=\"$cislo.jpg\" align=\"left\" width=\"100\" height=\"100\" />
</a> "
?>


Dalo by se to prosím udělat nějak jednodušeji ? Třeba , abych nemusel přejmenovávat všechny fotky na číslo 1 - xx ?
MCKAY
Profil
matesek:
Funkce na náhodný obrázek tu na fóru skutečně již byla, takže ji sem uvedu, a všechny upozorňuji, že nejsem její autor.

<?php
$cesta="img"; // 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
?>
Alphard
Profil
Připadá mi to zbytečně složité, tady mám jen .jpg, ale většinou to stačí:
<?php
$path = "img/";
$obrazky = glob("$path*.jpg");
shuffle($obrazky);
echo "<img src=\"$obrazky[0]\">";  // jeden náhodný
echo "<img src=\"$obrazky[1]\">";  // druhý náhodný
valecekm
Profil
Alphard:
V tomto pripade to opravdu staci a je to lepsi reseni nez to me. Pokud tam neni vicero druhu typu souboru, ale opravdu jde jen o jednoduche vybrani, tak doporucuji tohle.
MCKAY-> matesek:
Pokud by jsi pouzil tohle moje reseni, doporucuju to opravit jako jsem to udelal nakonec i ja, jednali se o freehost. Stejne i tak doporucuji opravit ;-).
Zde
MCKAY
Profil
valecekm:
Myslel jsem si, že je to skript někoho právě z této diskuse :-).
matesek
Profil
MCKAY:
Díky za kód , zkusím ho . Pochopil jsem podle toho , že nemusím přejmenovávat soubory , ale stačí , když je dám do jedné složky s jakýmkoliv jménem . Je to zkustečně tak ?

Mohl by sem ještě někdo dát , třeba jen odkaz , na zobrazení všech obrázků pod sebou v miniatuře ? Nebo třeba návrh na nějakou pěknou fotogalerii ?
Alphard
Profil
matesek:
že nemusím přejmenovávat soubory , ale stačí , když je dám do jedné složky s jakýmkoliv jménem
Ano, ani nemusí být v té složce samy, stačí, když jejich názvy budou končit .jpg. Jestli chcete více formátů, tak je dejte do samostatné složky a odmažte ten filtr.

na zobrazení všech obrázků pod sebou v miniatuře ?
Výpis a řazení složek podle data. Miniatury si vytvořte do samostatného adresáře, tvořit je vždy při načtení by byla příliš velká zátěž.

Nebo třeba návrh na nějakou pěknou fotogalerii ?
Často používám Highslide JS - JavaScript thumbnail viewer (pro nekomerční projekty zdarma), jeden z příkladů.
matesek
Profil
Alphard:
Často používám Highslide JS - JavaScript thumbnail viewer (pro nekomerční projekty zdarma), jeden z příkladů.
Stáhnul jsem si to ale pořád nechápu , co s tím mám dělat . V seznamu různých ukázek jsem si třeba nějakou vybral , ale nevím , jak si ji dát na své stránky .
Alphard
Profil
matesek:
Není to úplně jednoduché. Podívejte se do zdrojového kódu té ukázky, musí se nalinkovat css styly a javascript. Pak vložit javascript s daným nastavením a přesně vygenerovat miniatury s odkazy na velké obrázky.

Třeba byl pro vás byl jednodušší Lightbox 2, ale moc velký rozdíl tam asi nebude. Asi jen v tom, že highslide vyžaduje přímo onclick="return hs.expand(this)", lightboxu se jen nastavuje rel.

Já to mám v MVC systému rozčleněné do šablon atd., takže svůj kód vám asi neposílat nebudu, to bych vás zmátl ještě víc.
panther
Profil
matesek:
je to na webu, který [#7] Alphard odkázal jako první, popsané. Pokud to ani z toho nepochopíš (ano, je to anglicky), koukni se do zdrojového kódu druhého Alphardova odkazu. Třeba pochopíš.
matesek
Profil
Pořád nevím co s tím .

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: