dodaj tą stronę do ulubionych     
użytkownicy online 16, liczba odwiedzin: 1648968
książki i porady dla programistów i webmasterów porady dla budujących strony internetowe i webmasterów wagi

dołącz do modlących się o cud

poradnik programisty

taśmy zebra
taśmy zebra


wózki sklepowe

wagi vibra

Wagi dźwigowe
wagi dźwigowe


wagi ohaus

wózki transportowe
. 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 Page copy protected against web site content infringement by Copyscape
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:

  • foo=bar
  • baz=boom
  • cow=milk
  • php=hypertext+processor

    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: http://pl.php.net/http_build_query

    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: http://pl.php.net/manual/pl/function.urlencode.php

    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?
    rozwiązaniem jest prosta sztuczka - jeśli w linku są 2 lub więcej parametrów get o takiej samej nazwie to zawsze brany jest tylko pierwszy reszta jest ignorowana ...
    więc teraz wystarczy dodać zmieniony parametr na początku takiego linku aby unieważnić następne o tej samej nazwie (parametry zdublowane już nie zdziałają)

    &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].
    Oto skrypt pokazujący przykładowe wykorzystanie tego parametru do generowania różnych linków w zależności od tego czy dodatkowe parametry
    GET występują czy nie...

    &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;
  • Page copy protected against web site content infringement by Copyscape
    .
    pomóż w walce z rakiem

    tanie tonery

    pojemniki na piasek

    świece liturgiczne

    meble warsztatowe

    wózki magazynowe

    tanie wagi elektroniczne

    tanie drukarki zebra

    wagi axis

    wózki narzędziowe
    wózki narzędziowe
      | 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