Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Regexp w IF
netes
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 1
Dołączył: 5.06.2003

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
Kicok
post
Post #2





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

Ostrzeżenie: (0%)
-----


Może $_SERVER['PHP_SELF'], $_SERVER['SCRIPT_NAME'] albo __FILE__ rozwiążą sprawę?
Go to the top of the page
+Quote Post
netes
post
Post #3





Grupa: Zarejestrowani
Postów: 19
Pomógł: 1
Dołączył: 5.06.2003

Ostrzeżenie: (0%)
-----


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")
Go to the top of the page
+Quote Post
JoShiMa
post
Post #4





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

Ostrzeżenie: (0%)
-----


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'.

Ten post edytował JoShiMa 2.04.2008, 14:04:11
Go to the top of the page
+Quote Post
Crozin
post
Post #5





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


ereg_* to zło, użyj preg_*
  1. <?php
  2. if(preg_match('#^/katalog.php#', $_SERVER['REQUEST_URI'])){
  3.  
  4. }
  5. ?>
Go to the top of the page
+Quote Post
JoShiMa
post
Post #6





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

Ostrzeżenie: (0%)
-----


Cytat(Crozin @ 2.04.2008, 14:08:41 ) *
ereg_* to zło

Jakoś to uzasadnisz?
Go to the top of the page
+Quote Post
mike
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


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ść.
Go to the top of the page
+Quote Post
JoShiMa
post
Post #8





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

Ostrzeżenie: (0%)
-----


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

A bardziej o szybkość czy popularność ? (IMG:http://forum.php.pl/style_emoticons/default/cool.gif) (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
mike
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Szybkość. Pregi są dużo szybsze od eregów.
Go to the top of the page
+Quote Post
Kicok
post
Post #10





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
netes
post
Post #11





Grupa: Zarejestrowani
Postów: 19
Pomógł: 1
Dołączył: 5.06.2003

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 11:03