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

Posty w temacie


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: 7.10.2025 - 12:43