Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wyrażenie regularne w preg_replace
Forum PHP.pl > Forum > Przedszkole
dominik();
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
everth
  1. echo trim($foo,'/');
dominik();
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.