Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] dowolny znak
Forum PHP.pl > Forum > Przedszkole
banki
Witam, nie wiem co wstawić w zmienną $znak, potrzebuję aby w zmiennej $banner wyświetlało to samo przy adresie strony /product_info.php?h=13&id=55 jaki i innym dowolnym znaku w miejscu "55"

  1. $znak = ' ' ;
  2.  
  3. if ($_SERVER['REQUEST_URI'] == '/index.php?h=13')
  4. $banner = 'banner_dzien_babci';
  5. else
  6. if ($_SERVER['REQUEST_URI'] == '/product_info.php?h=13&id='.$znak.'')
  7. $banner = 'banner_dzien_babci';
  8. else
  9. if ($_SERVER['REQUEST_URI'] == '/index.php?h=14')
  10. $banner = 'banner_dzien_kobiet';
  11. else
  12. itd ...
tehaha
nie do końca ogarnąłem o co chodzi, ale jeżeli chcesz zmieniający się element numeryczny z url wstawić do innej zmiennej to nada się do tego preg_replace(), aczkolwiek jeżeli ten link ma zawsze taką samą strukturę to możesz pobawić się funkcjami do stringów np http://www.php.net/manual/en/function.strrpos.php znaleźć ostatni znak = i przy pomocy http://php.net/manual/en/function.substr.php wyciąć resztę, warto też spróbować http://php.net/manual/en/function.parse-url.php, preg_replace() to raczej na końcu jest troszkę wolniejsze

//aa już rozumiem o co chodzi... jeżeli do konkretnych wzorów url chcesz dopasować baner to możesz użyć preg_match(), ale w tym przykładzie który podałeś wystarczy:
  1. if(isset($_GET['h']) && isset($_GET['id']))
  2. {
  3.  
  4. $banner = 'banner_dzien_babci';
  5. }
banki
spróbuje wytłumaczyć jeszcze raz, bo faktycznie mogłem namieszać ;P

powiedzmy że $_SERVER['REQUEST_URI'] może się równać '/product_info.php?h=13&id=55'
po kliknięciu w inny link na tej stronie może się już równać '/product_info.php?h=13&id=56', '/product_info.php?h=13&id=57' lub z jakąś inną liczbą na końcu po id=

terach chodzi o to że chcę dać jedną i tą samą wartość zmiennej $banner

przy
  1. if ($_SERVER['REQUEST_URI'] == '/product_info.php?h=13&id=55')
  2. $banner = 'nazwa';


będzie ok tylko dla linku z id=55
a chcę wstawić jakąś zmienną gdzie jest w powyższym przykładzie liczba '55' aby brało pod uwagę obojętnie jaki ciąg znaków po ciągu /product_info.php?h=13&id=

teraz chyba lepiej udało mi się wytłumaczyć smile.gif
zend
po wszystkich ifach dajesz
  1. $banner = 'rządana wartość';

If'y możesz też zakomentować, usunąć, albo zostawić w spokoju smile.gif
tehaha
jemu chodzi o to, żeby przy konkretnych strukturach url, wyświetlał się inny baner, ale podałeś trochę za mało informacji, żeby podać Tobie sprecyzowaną odpowiedź, w tych przykładach co podałeś wystarczy:
  1. if ($_SERVER['REQUEST_URI'] == '/index.php?h=13')
  2. $banner = 'banner_dzien_babci';
  3. else
  4. if(isset($_GET['h']) && isset($_GET['id']))
  5. {
  6.  
  7. $banner = 'banner_dzien_babci';
  8. }
  9.  
  10. else
  11. if ($_SERVER['REQUEST_URI'] == '/index.php?h=14')
  12. $banner = 'banner_dzien_kobiet';
  13. else

ale domyślam się, że pewnie dużo jest tych struktur i przesyłają takie same zmienne, może spróbuj http://php.net/manual/en/function.parse-url.php i odpowiednio sprawdzając [path] i [query], a na samym końcu preg_match() jeżeli już nie będzie innej opcji chociaż wydaje mi się, że ten sposób, który dałem wyżej będzie najszybszy
banki
dałem sobie radę z tym

podaje kod jak to załatwiłem

  1. $sss = $_SERVER['REQUEST_URI'];
  2. $ss2 = substr("$sss", -2);
  3. $ss3 = substr("$sss", -3);
  4.  
  5. if ($_SERVER['REQUEST_URI'] == '/index.php?cPath=13')
  6. $banner = 'banner_dzien_babci';
  7. else
  8. if($_SERVER['REQUEST_URI'] == '/product_info.php?cPath=13&products_id='.$ss2.'')
  9. $banner = 'banner_dzien_babci';


dało efekt jaki chciałem, 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.