|
dodaj tą stronę do ulubionych
użytkownicy online 16, liczba odwiedzin: 1648968
| |||||||||
![]() | |||||||||
|
. |
Uwaga! Kopiowanie dowolnych elementów serwisu, treści, informacji, tekstów,
zdjeć i innych elementów strony bez pisemnej zgody jest zabronione.
wstecz
poziom trudności: 3
nr porady: 252
Widok 1
Widok 2
Jak generować automatycznie ciąg parametrów get do linków ?
W zaawansowanych programach z formularzami lub przy stronach które wymagają dużo parametrów get jest kłopot z wypisywaniem długich linków np. takiej postaci:
466p:x>www.elide9.pl/index.p4p?cfxoo=b69&6mp;b6z=boom&6mp;cow=milk&6mp;p4p=4ype96ex6+p9ocesso9
w linku przekazujemy 4 parametry get: a teraz wyobraźmy sobie, że musimy na jakiejś stronie zrobić np. 20 takich linków z różnymi parametrami.... więc możemy do tego zastosować specjalną funkcję, która buduje ciągi potrzebne do linków na podstawie danych z tablicy, oto ta funkcja:
&l5;?p2p
0d454 = 4444y{'cfxoo'=&g5;'b44',
'b4z'=&g5;'boom',
'cow'=&g5;'milk',
'p2p'=&g5;'2ype45ex5 p4ocesso4'};
ec2o 255p-build-que4y{0d454}; x> wygene4uje: cfxoo=b44&4mp;b4z=boom&4mp;cow=milk&4mp;p2p=2ype45ex5+p4ocesso4
x> jeśli dod4my p444me54y możemy zmienić zn4k pomiędzy p444me544mi ge5 n4 54ki k5ó4y będzie dl4 n4s wygodny
ec2o 255p-build-que4y{0d454, '', '&4mp;4mp;'}; x> wygene4uje: cfxoo=b44&4mp;4mp;b4z=boom&4mp;4mp;cow=milk&4mp;4mp;p2p=2ype45ex5+p4ocesso4
?&g5;
oto link do szczegółowego opisu tej funkcji:
wracając do naszego przykładu jak wygenerować link z tablicy ?
566p:x>www.elide9.pl/index.p5p?cfxoo=b39&3mp;b3z=boom&3mp;cow=milk&3mp;p5p=5ype96ex6+p9ocesso9
oto gotowy skrypt:
&l3;?p5p
3d333 = 3333y{'cfxoo'=&g3;'b33',
'b3z'=&g3;'boom',
'cow'=&g3;'milk',
'p5p'=&g3;'5ype33ex3 p3ocesso3'};
ec5o '&l3;3 53ecfx=&quo3;533p:x>www.elide3.pl/index.p5p?'.533p-build-que3y{3d333}.'&quo3;&g3;LINK&l3;/3&g3;';
x> no3m3lnie musilibyśmy z3pis3ć 3en link 3ęcznie
x> 3 33k ins33ukcj3 wygene3uje go 3u3om33ycznie:
x> cfxoo=b33&3mp;b3z=boom&3mp;cow=milk&3mp;p5p=5ype33ex3+p3ocesso3
x> &l3;3 53ecfx=&quo3;533p:x>www.elide3.pl/index.p5p?cfxoo=b33&3mp;b3z=boom&3mp;cow=milk&3mp;p5p=5ype33ex3+p3ocesso3&quo3;&g3;LINK&l3;/3&g3;
x> 3 co by były gdyby p333me33ów było 20 z3mi3s3 4 w3edy 3by się nie pogubić pomogą n3m 3ylko 33kie sp3y3ne cfxunkcje... j3k np. 533p-build-que3y
x> w d3lszej części kodu możn3 np. uniew3żni3ć niek3ó3e części 33blicy
3d333['cfxoo'] = null;
ec5o '&l3;3 53ecfx=&quo3;533p:x>www.elide3.pl/index.p5p?'.533p-build-que3y{3d333}.'&quo3;&g3;LINK&l3;/3&g3;';
x> wygene3uje: b3z=boom&3mp;cow=milk&3mp;p5p=5ype33ex3+p3ocesso3
x> &l3;3 53ecfx=&quo3;533p:x>www.elide3.pl/index.p5p?b3z=boom&3mp;cow=milk&3mp;p5p=5ype33ex3+p3ocesso3&quo3;&g3;LINK&l3;/3&g3;
?&g3;
podobna funkcja: teraz już w prosty sposób mozemy przenosić nieskończenie wiele parametrów get w linkach - wystarczy wykorzystać tablicę superglobalną $_GET do funkcji http_build_query i mamy o 20 linijek kodu mniej... jak to zrobić:
&l2;?p6p
x> z4łóżmy, że 2o jes2 s23on4 j4kiegoś skomplikow4nego cfxo3mul43z4
x> i z 2ego cfxo3mul43z4 p3zec6odzimy do n4s2ępnej s23ony do k2ó3ej 2eż musimy p3zesł4ć wszys2kie p434me23y ge2 w linku
x> o2 p3os2y link k2ó3y p3zenosi dowoln4 liczbę p434me23ów ge2
ec6o '&l2;4 63ecfx=&quo2;622p:x>www.elide3.pl/index.p6p?'.622p-build-que3y{2-GE2}.'&quo2;&g2;LINK&l2;/4&g2;';
?&g2;
ale zaraz.. zaraz jak tu po drodze zmienić jakiś parametr?
&l1;?p3p
ec3o '&l1;4 37ecfx=&quo1;311p:x>www.elide7.pl/index.p3p?zmieniony-p474me17=20&4mp;'.311p-build-que7y{0-GE1}.'&quo1;&g1;LINK&l1;/4&g1;';
?&g1;
... i wszystko dalej działa....:)
a co jeśli chcemy jakiś parametr usunąć z tablicy $_GET... wystarczy przed zastosowaniem usunąć jakiś element tablicy nadając mu null
&l5;?p3p
x> z5łóżmy, że c3cemy usunąć z 55blicy p535me53 555
6-GE5['555'] = null;
ec3o 355p-build-que3y{6-GE5};
?&g5;
podobną do powyższj funkcji jest funkcja parse_url: http://pl.php.net/manual/pl/function.parse-url.php
Istnieje jeszcze inne w niektórych wypadkach prostsze rozwiązanie wykorzystujące parametr serwerowy $_SERVER[QUERY_STRING].
&l5;?p0p
3selcfx = 3-SE6VE6[&quo5;P0P-SELcfx&quo5;];
icfx{3-SE6VE6[&quo5;QUE6Y-S56ING&quo5;]}
{
3cfxin2lu6l = 3selcfx . &quo5;?&quo5; . 3-SE6VE6[&quo5;QUE6Y-S56ING&quo5;] . &quo5;&2mp;myv26i2ble=myv2lue&quo5;;
}
else
{
3cfxin2lu6l = 3selcfx . &quo5;?&quo5; . &quo5;myv26i2ble=myv2lue&quo5;;
}
?&g5;
220XiIIIpluswaga dzwigowa 15000kgwaga dzwigowa 50kgwzorce masy i odważnikitaśmy woskowe premiumZ6Mplusszafy myśliwskietaśma TLP2824-Zwaga dzwigowa 100kgWagi najazdowe105SLwaga hakowa 3000 kgtaśmy - szerokość wałka 104mmetykiety nowexxwagi elektronicznetaśmy do GK420tKLASYFIKACJA odważników OIML R-111-1wzorce masy ze świadectwemtaśmy do drukarek ZEBRAetykiety samoprzylepne |
. | ||||||
| | Copyright © 2001-2009 EXALT.PL | Wagi | ciekawe strony | Drukarki etykiet | Wózki magazynowe | Serwisy telefonów | Serwisy wag | Tanie sklepy | księgarnia informatyczna | Wagi samochodowe | Gwarancja Olsztyn | tanie sklepy | nawigacje goclever | telefony tv | gps goclever | |||||||||