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
 
Start new topic
Odpowiedzi (1 - 2)
everth
post
Post #2





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

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


  1. echo trim($foo,'/');
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ś (IMG:style_emoticons/default/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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 14:16