Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]usuwanie dowolnego stringa pomiędzy określonymi znakami
Forum PHP.pl > Forum > Przedszkole
maraska
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
Spawnm
Użyj Regex + preg_*
maraska
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' ;
b4rt3kk
  1. preg_replace('#\[color=\"\#[a-zA-Z0-9]*\"\]#', $replacement, $string);


Coś w tym stylu, nie wiem czy działa, nie testowałem, sprawdź.
maraska
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 ;
_Borys_
  1. $zmienna = preg_replace('/(\[.+?\])/', $replacement, $zmienna);
maraska
Działa prześlicznie. Wycina wszystkie [...]

Wielkie dzięki

smile.gif
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.