Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Ostatni nawias, wyrażenie reguralne.
kamilos12
post
Post #1





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 20.03.2010

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


Witam!

Chciałbym usunąć z tekstu ostatni nawias, wraz z zawartością, np.

  1. $string = 'Lorem ipsum dolor sit amet, (consectetur) adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, (quis) nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est (laborum).';


Zwróci:

  1. $string = 'Lorem ipsum dolor sit amet, (consectetur) adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, (quis) nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.';


Pozdrawiam i proszę o wskazówki (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Kildyt
post
Post #2





Grupa: Zarejestrowani
Postów: 869
Pomógł: 53
Dołączył: 20.10.2003
Skąd: Przeworsk

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


Jeżeli treść będzie dynamiczna to zdecydowanie wyrażenie regularne.
Sprecyzuj swój post. Opisałeś, że chciałbyś usunąć nawiasy wraz z zawartością, a w przykładnie zawartość została.
Poczytaj o wyrażeniach regularnych w PHP. Co prawda nie jest to łatwy kawałek tortu, ale na prawdę warto bo zdecydowanie upraszcza programowanie.
Go to the top of the page
+Quote Post
tehaha
post
Post #3





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


Cytat(Kildyt @ 3.06.2010, 14:11:39 ) *
Jeżeli treść będzie dynamiczna to zdecydowanie wyrażenie regularne.

a jaka to różnica czy dynamiczna czy statyczna? przecież funkcja strrpos() służy właśnie do ustalania pozycji, więc moim zdaniem jak najbardziej się tutaj nadaje

Cytat
Wydaje mi się że bardziej optymalnie było by użyć wyrażenia regularnego?

zależy co rozumiesz przez słowo optymalnie, szybciej działające czy mniej kodu? Bo funkcje typu preg_replace(), są stosunkowo wolne i jak dotąd we wszystkich sytuacjach gdzie można było zastąpić preg_replace(), kilkoma prostszymi funkcjami okazywało się to dużo szybsze, ale jak ktoś napisze do tego wyrażenie regularne to chętnie zrobię jakiś test porównawczy

tu masz kod do usunięcia ostatnich nawiasów bez zawartości z podanego stringa(czyli tak jak w przykładzie, który podałeś):
  1. $string = 'Lorem ipsum dolor sit amet, (consectetur) adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, (quis) nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est (laborum) fas fsdaf sdaf sadfa ssad f.';
  2. $last_open_bracket = strrpos($string, '(');
  3. $last_close_bracket = strrpos($string, ')');
  4. $string = substr_replace($string,'', $last_open_bracket, 1);
  5. $string = substr_replace($string,'', $last_close_bracket-1, 1);
  6. echo $string;
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: 12.01.2026 - 02:12