Autor Zpráva
Hitman1
Profil *
Dobré odpoledne,

vytvořil jsem si jednoduchý script pro galerii obrázků. Potřeboval jsem ji ale doplnit o kategorie - složky, na to jsem použil script, který prohledává adresáře a vypisuje je. Takže pokud jsem ve složce galerie, zobrazí mi složky v ní, pak další atd. (jde mi ale jen o jednu úroveň). Problém je v tom, že mám složku web.com/nejaka-kategorie a web.com/dalsi-kategorie a musel bych tak obrázky ukládat do web.com/nejaka-kategorie/slozka-obrazku/obrazek, což nechci. Obrázky bych chtěl mít v web.com/galerie/kategorie1, web.com/galerie/kategorie2 atd.

Jde o to, že script bere url ze stránky na které jsem takže třeba web.com/nejaka-kategorie.index.php?slozka=... ale potřeboval bych mu podstrčit adresu web.com/galerie/index.php

je to možné? Ještě zjednodušeně: na adrese web.com/nejaka-kategorie/index.php bych chtěl scriptu podstrčit adresu web.com/galerie/index.php je to možné?

$slozka = @$_GET['slozka'];



$slozka = preg_replace('/\.+\//','',$slozka);    // nahradit vse co ma 1 a vice tecek nasledovanou /

$slozka = preg_replace('/^\.+$/','',$slozka);   // nahradit jednu a vice tecek na konci retezce

$slozka = preg_replace('/^\//','',$slozka);       // odstranit / na zacatku  (da se hodit i  /\/+/   za jedno '/'  - tj.  //// => / a podobne )



$sl = opendir('./'.$slozka);  // protoze odstranuju tecky tak na zacatku adresare je jednu potreba pridat

while ($soubor = readdir($sl)) { 


  if ( is_file('./'.$slozka.'/'.$soubor) ) {  // pokud je to soubor nema smysl davat odkaz na zanoreni do podadresare
  

    if (  preg_match('/\.(jpg|png|gif|tiff)$/',$soubor) ) { // zobrazuju jen  .jpg / .png / .gif / .tiff (lze libovolne rozsirit)

  
ZDE je script pro vypis galerie


    }

  } else { // jinak je to adresar 

    if ( $soubor == '..' ) { //   specialni "zastupny" adresar - o uroven vyse

      $up = preg_replace( '/[^\/]+\/*$/','',$slozka );  //  odstranim posledni cast v slozka  ( neco/blabla/test => neco/blabla  (muze byt i ukonceno / ))

      echo "<a href='?slozka=$up'>[up]</a>"; // vypsat

    } elseif( $soubor != '.' ) { // pokud to neni zastupny adresar pro "aktualni" adresar

      echo "<a href='?slozka=".($slozka ==''? '': $slozka."/")."$soubor'>$soubor</a>"; // vypsat (pripadne se zbavit / na zacatku pokud je $slozka prazdna)

    }

  }

}

closedir($sl);



?>
Taps
Profil
Hitman1:
toto jde přes htaccess
http://mike.treba.cz/mod_rewrite-a-hezke-url/

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: