Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]usuwanie dowolnego stringa pomiędzy określonymi znakami
maraska
post
Post #1





Grupa: Zarejestrowani
Postów: 143
Pomógł: 0
Dołączył: 9.04.2013

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


Pobieram z bazy do zmiennej tekst w postaci np.:

... kluczowe. [/color] [color=#333366]Każda strona....

Jak się można domyślić, ilość nr kolorów jest nieograniczona.

Jak wycinać z takiego tekstu wszystko pomiędzy [] łącznie z [] ?

Da się to może jakoś w str_replace napisać?

Z góry dzięki za pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Spawnm
post
Post #2





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Użyj Regex + preg_*
Go to the top of the page
+Quote Post
maraska
post
Post #3





Grupa: Zarejestrowani
Postów: 143
Pomógł: 0
Dołączył: 9.04.2013

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


Dziękuję za podpowiedź, tylko że wyrażenia regularne to nieco wyższa szkoła jazdy a w dodatku do usunięcia są "[" "]".

Czy mógłby ktoś pokazać wprost, jak z tego przykładu usunąć

"[/color]" oraz '"[co="#333366"]" gdzie w miejsce #333366 może być dowolny ciąg znaków
(powyżej zamiast "co" powinno być "color", ale edytor tego nie łąpie).

Przykład:

$zmienna = 'kluczowe. [/color] [color=#333366]Każda' ;

Ten post edytował maraska 4.07.2013, 08:34:12
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #4





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


  1. preg_replace('#\[color=\"\#[a-zA-Z0-9]*\"\]#', $replacement, $string);


Coś w tym stylu, nie wiem czy działa, nie testowałem, sprawdź.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
maraska
post
Post #5





Grupa: Zarejestrowani
Postów: 143
Pomógł: 0
Dołączył: 9.04.2013

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


Niestety, nie działa, tzn tak jakby nic nie robiło. sad.gif

Dla testu wstawione tak:

$zmienna = $c['zmienna'];
$replacement ='XXX';
$zmienna = preg_replace('#\[color=\"\#[a-zA-Z0-9]*\"\]#', $replacement, $zmienna);

echo $zmienna ;
Go to the top of the page
+Quote Post
_Borys_
post
Post #6





Grupa: Zarejestrowani
Postów: 587
Pomógł: 190
Dołączył: 5.02.2011
Skąd: 64-800

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


  1. $zmienna = preg_replace('/(\[.+?\])/', $replacement, $zmienna);


Ten post edytował _Borys_ 4.07.2013, 10:47:29
Go to the top of the page
+Quote Post
maraska
post
Post #7





Grupa: Zarejestrowani
Postów: 143
Pomógł: 0
Dołączył: 9.04.2013

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


Działa prześlicznie. Wycina wszystkie [...]

Wielkie dzięki

smile.gif
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: 20.08.2025 - 08:59