Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] jak usunąć z ciągu wszystko od znaku a do b?
Forum PHP.pl > Forum > Przedszkole
tryme
Witam,

Chciałbym pozbyć się z popranego tekstu z bazy wszystkich znaków BBcode. Szukałem w manualu, lecz bez skutku wstydnis.gif

Jedynie co potrafię zrobić to skorzystać z funkcji preg_replace, czyli:

  1. <?php


Oczywiście mogę się w ten sposób pozbyć całego BBcoda, lecz co z takimi przypadkami jak np.
  1. <?php
  2. [url=http://aaaaaaaaaa]bla bla
  3. ?>


Dlatego też pomyślałem sobie, że dużo lepszym rozwiązaniem będzie usunięcie ciągu znaków od np. znaków [url do /url] i np. od [ do ]

Tylko pytanie, jaką funkcję mogę to tego wykorzystać?
nexis
  1. <?php
  2. function bb_strip ($s)
  3. {
  4. return ereg_replace("[/?[^] ]*/?]",'',$s);
  5. }
  6. ?>
nevt
to ci wywali cały bbcode:
  1. <?php
  2. $tekst = preg_replace('#[.*?]#s', '', $tekst);
  3. ?>
tryme
Oczywiście Wasz kod usunie BBcode, ale pozostawi linki, które były pomiędzy
  1. <?php
  2. [url] a [/url]
  3. ?>


Jak mogę się pozbyć tych urli?
nevt
najpierw zrób usunięcie całych tagów (z zawartością), a potem resztę tagów(same znaczniki), coś w rodzaju:
  1. <?php
  2. $tekst = preg_replace('#[url.*?#s', '', $tekst);
  3.  $tekst = preg_replace('#[.*?]#s', '', $tekst);
  4. ?>
tryme
nevt dziękuję.
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.