Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] jak pobrac część z adresu
Forum PHP.pl > Forum > Przedszkole
lnn
witam

czy ktos moze wie jak pobrac z adresu np. http://localhost/strona/index.php?p=profile
zeby wstawić do linku samo index.php?p=profile
bo chciałem utworzyć link w którym dopisywana by była jeszcze jedna zmienna $_GET

EDIT: odnosnie zgodnosci z walidatorem, ampersand sie zapisuje & amp ; ?
skowron-line
http://pl2.php.net/manual/pl/function.parse-url.php
lnn
ok dzieki, ale teraz opisze na czym polega moj problem smile.gif

chce sie odwolac do konkretnego pliku tylko bo wiadomo ze katalog jest ten sam, takze mam podac caly adres pobrany za pomoca $_SERVER['REQUEST_URI'] tj. strona/index.php?p=profile w linku czy samo index.php?p=profile zeby dzialalo? chyba w sumie jesli jest pobierane poprzez $_SERVER['REQUEST_URI'] to tak czy tak zadziala gdzie by to nie bylo umieszczone?

drugie pytanie, to jak polaczyc stałe w tej funkcji? tzn ze jesli np chce wyswietlic PATH i QUERY ?
  1. $adres_url = $_SERVER['REQUEST_URI'];
  2. echo parse_url($adres_url, PHP_URL_PATH);

tak dziala a jak zrobic 2 na raz stałe?

zrobilem tak troche naokolo i dziala
  1. $adres_url = $_SERVER['REQUEST_URI'];
  2. $wstaw_adres = parse_url($adres_url, PHP_URL_PATH);
  3. $wstaw_zmienna = parse_url($adres_url, PHP_URL_QUERY);
  4.  
  5. echo '<div class="cell-4_user"><a href="'.$wstaw_adres.'?'.$wstaw_zmienna.'&id='.$pokaz['id'].'">Edytuj</a></div>';


i zauwazylem ze jesli klikam pare razy na link to adres staje sie taki:
http://localhost/strona/index.php?p=profil...p;id=6&id=3

nie przeszkadza to w uzytkowaniu bo zwraca kazda wartosc wywolana oddzielnie, ale tak pytam moze ktos wie o co biega ;P
jacek.e3
Witam,

Cytat
drugie pytanie, to jak polaczyc stałe w tej funkcji? tzn ze jesli np chce wyswietlic PATH i QUERY ?


Nie podając żadnych flag dostajesz komplet w postaci tablicy:
  1. $parse = parse_url($adres_url);
  2. $path = $parse['path'];
  3. $query = $parse['query'];


Cytat
i zauwazylem ze jesli klikam pare razy na link to adres staje sie taki:
http://localhost/strona/index.php?p=profil...p;id=6&id=3


żeby było porządek musisz pozbyć się powtarzających się zmiennych, np.:

  1. $wstaw_adres = parse_url($adres_url, PHP_URL_PATH);
  2. $wstaw_zmienna = parse_url($adres_url, PHP_URL_QUERY);
  3. // rozdzielam po &
  4. $arr_zmienna = explode('&', $wstaw_zmienna);
  5. // usuwam powtarzające się wpisy
  6. $arr_unique = array_unique($arr_zmienna);
  7. // do adresu dodajesz później osobno &id=, więc też pasuje to wyfiltrować:
  8. for ($i = 0; $i < count($arr_unique); $i++) {
  9. if (preg_match('@^id=@', $arr_unique[$i])) {
  10. unset($arr_unique[$i]);
  11. break;
  12. }
  13. }
  14. // na koniec łączę z powrotem przez &
  15. $unique_query = join('&', $arr_unique);
  16. echo '<div class="cell-4_user"><a href="'.$wstaw_adres.'?'.$unique_query.'&id='.$pokaz['id'].'">Edytuj</a></div>';


pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.