Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [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
everth
post
Post #2





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


  1. echo trim($foo,'/');


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
Go to the top of the page
+Quote Post
dominik();
post
Post #3





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

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


Cytat(everth @ 18.08.2010, 16:48:46 ) *
echo trim($foo,'/');


@everth no to mnie załatwiłeś biggrin.gif
Nigdy nie przyszłoby mi do głowy użyć tu trim'a w ten sposób. Dzięki.
Go to the top of the page
+Quote Post

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 - 12:20