Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Wyrażenie regularne w preg_replace
dominik();
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 26.08.2009

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


Witam.
Mam problem, z którym próbuję poradzić sobie od jakiegoś czasu, ale nie bardzo mi to wychodzi. Otóż mam taki fragment kodu:
  1. <?php
  2. $foo = '/some/text/with/slashes/';
  3. print preg_replace('/^[\/]{1}(.*)[\/]?$/', '$1', $foo);
  4. ?>

Ma on za zadanie ze zmiennej $foo usunąć pierwszy i ostatni ukośnik, czyli chcę, aby wynikiem działania tego skryptu było:
Kod
some/text/with/slashes

Niestety, zamiast tego dostaję:
Kod
some/text/with/slashes/

Kod jest odpowiedzialny za wyciągnięcie danych z adresu URL, np.:
gdy $_SERVER['REQUEST_URI'] == /foo/bar/ to rezultatem ma być: foo/bar
O ile z pierwszą, początkową częścią reguły nie mam problemu, bo wiem, że tam zawsze będzie występował slash: [\/]{1}, o tyle na końcu niekoniecznie: [\/]? I tu mam jakiś problem z kwantyfikatorem '?'.
Od razu dodam, że [\/]* też nie działa, za to działa [\/]{1}

Czy moglibyście pokazać mi, gdzie robię błąd?
Pozdrawiam i liczę na Waszą pomoc smile.gif
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 19.08.2025 - 05:39