Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Regexp w IF
Forum PHP.pl > Forum > Przedszkole
netes
Witam.
Problem zapewne dla wielu banalny, ale jakoś nie wiem jak to ugryźć, mam linijkę:
  1. <?php
  2. if ($REQUEST_URI == '/katalog.php') {
  3. ?>

I chciałbym, aby ten if tyczył się także wszelkich innych stron, których REQUEST_URI = np. katalog.php?p=1, jak dodać do tego IFa regexp-a?

Z góry dzięki.
Kicok
Może $_SERVER['PHP_SELF'], $_SERVER['SCRIPT_NAME'] albo __FILE__ rozwiążą sprawę?
netes
Niestety PHP_SELF i SCRIPT_NAME zwracają dokładnie tę samą wartość co REQUEST_URI natomiast __FILE__ pokazuje nazwę pliku włączanego, a nie głównego (wg manuala "stała użyta w pliku, który został włączony (include) lub jest wymagany (require), zwraca nazwę tego właśnie pliku, a nie nazwę pliku głównego")
JoShiMa
A może spróbuj:

  1. <?php
  2. if (ereg("^/katalog.php",$REQUEST_URI) {
  3. }
  4. ?>


Powinno zwrócić true jeśli $REQUEST_URI zaczyna się od '/katalog.php'.
Crozin
ereg_* to zło, użyj preg_*
  1. <?php
  2. if(preg_match('#^/katalog.php#', $_SERVER['REQUEST_URI'])){
  3.  
  4. }
  5. ?>
JoShiMa
Cytat(Crozin @ 2.04.2008, 14:08:41 ) *
ereg_* to zło

Jakoś to uzasadnisz?
mike
Cytat(JoShiMa @ 2.04.2008, 16:13:08 ) *
Jakoś to uzasadnisz?
ereg()
Cytat
Notatka: preg_match(), which uses a Perl-compatible regular expression syntax, is often a faster alternative to ereg().

Chodzi o szybkość i popularność.
JoShiMa
Cytat(mike @ 2.04.2008, 14:16:25 ) *
Chodzi o szybkość i popularność.

A bardziej o szybkość czy popularność ? cool.gif tongue.gif
mike
Szybkość. Pregi są dużo szybsze od eregów.
Kicok
Cytat
Niestety PHP_SELF i SCRIPT_NAME zwracają dokładnie tę samą wartość co REQUEST_URI


Z tego co pamiętam to REQUEST_URI zawiera: "katalog.php?p=1&inne_zmienne=wartosc" a SCRIPT_NAME: "katalog.php".
Jeśli nie o to Ci chodziło to masz podane wyżej rozwiązanie z użyciem regexpów
netes
Cytat(Kicok @ 2.04.2008, 19:22:21 ) *
Z tego co pamiętam to REQUEST_URI zawiera: "katalog.php?p=1&inne_zmienne=wartosc" a SCRIPT_NAME: "katalog.php".
Jeśli nie o to Ci chodziło to masz podane wyżej rozwiązanie z użyciem regexpów

Faktycznie, mój błąd, miałem jakieś chwilowe zaćmienie umysłu winksmiley.jpg
Ze SCRIPT_NAME w if działa dokładnie tak jak powinno.
Ale dzięki za rozwiązanie w regexpach, przyda się do czegoś innego smile.gif
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.