Pogledajte određenu poruku
Staro 18. 11. 2006.   #1
Ilija Studen
Direktor Kombinata
Invented the damn thing
 
Avatar Ilija Studen
 
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
Ilija Studen će postati "faca" uskoroIlija Studen će postati "faca" uskoro
Default Cimovanje sa regexpovima...

Ovo je najverovatnije strašno jednostavno, ali opet... Treba mi regex koji će matchovati sledeći tip stringa.

?var1=12&var2=13

Sam string je opcion (kompletna stvar može biti prazna) i nije potrebna strktna provera formata dela sa parametrima. Jednostavno, da se vidi da li postoji i ako postoji da izvučem query string kako bih ga mogao procesirati u kodu.

Background story, ako nekog zanima:

Pravim jednostavan sistem za rutiranje koji je u stanju da definicije URL-a tipa:

/:controller/:action/:id

Mapira sa odgovarajućom akcijom kontrolera i setuje odgovarajuće promenljive izvučene iz URL-a (u ovom slučaju samo ID). Ima tu još par zanimljivih osobina tipa default vrednosti, dodatni uslovi itd. Taj deo nije problem, on prolazi testove i prilično se fino ponaša. Ono što bih hteo da dodam je podrška za query string. Tipa:

/foo/:action/*

Gde * označava da navedena ruta može da ima i opcioni query string. Tada bi valida URL bio:

"/foo/do_this/" ili "/foo/do_this/?page=12&order_by=name&per_page=100"

To mi treba jer nekim parametrima (kao gore navedenim parametrima sortiranja) nije mesto u definiciji URL-a. Ako su potrebni prosleđuju se kao dodatni parametri.

Bah, jako mnogo priče za jednostavan problem. Mada opet, meni je cela priča oko pravljenja klasa koje rukuju sa rutiranjem uvek bila zanimljiva.
Ilija Studen je offline   Odgovorite uz citat