Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Usuwanie BBCODE, Na przykładzie phpBB
nexis
post
Post #1





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


Jak usunąć znaczniki BBCODE? Powiedzmy, że zmienna ma następującą wartość:

  1. <?php
  2. $post_text=&#092;"[quote=\"jakis_nick\"]tekst tekst tekst[/quote]to jest zwykly tekst poza BBCODEJakis link\";
  3. ?>


Jak wyciąć BBCODE, żeby zostało:

  1. <?php
  2. $post_text=&#092;"to jest zwykly tekst poza BBCODE\";
  3. ?>


(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
sf
post
Post #2





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

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


preg_replace" title="Zobacz w manualu PHP" target="_manual

było wiele przykładów jak używac wyrażeń regularnych na forum, więc możesz je tu znaleźć i się poduczyć
Go to the top of the page
+Quote Post
nexis
post
Post #3





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


A mógłbym prosić o jakiś gotowy skrypcik?
Go to the top of the page
+Quote Post
czachor
post
Post #4





Grupa: Zarejestrowani
Postów: 897
Pomógł: 40
Dołączył: 16.12.2003
Skąd: Warszawa

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


Mam coś podobnego do tego, czego szukasz... Napisałem sobie na potrzebę chwili (raczej nie do końca optymalne rozwiązanie, ale chodziło mi o to, żebym mógł ew. zostawiać niektóre znaczniki). Usuwa znaczniki BBCode, pozostawiając to, co jest między nimi, czyli z
Kod
[b]bold[/b] [url]urljakis[/url] bleble
zostanie:
Kod
bold urljakis bleble

  1. <?php
  2. function clear_bbcode($str)
  3. {
  4. //usuwanie 
  5. $str = str_replace(array('', '', '', '', '', ''), '', $str);
  6.  
  7. //usuwanie [/color]
  8. $str = preg_replace('/[color(.*?)](.*?)/i', '2', $str);
  9.  
  10. //usuwanie 
  11. $str = str_replace(array('', ''), '', $str);
  12.  
  13. //usuwanie [url*]
  14. $str = preg_replace('/[url+[=](.*?)(.*?)]/i', '2', $str);
  15.  
  16. //usuwanie 
  17. $str = preg_replace(&#092;"'[img*?].*?[/img]'si\", '', $str);
  18.  
  19. //usuwanie [img=*]
  20. $str = preg_replace(&#092;"'[img+[=].*?]'si\", '', $str);
  21.  
  22. return $str;
  23. }
  24. ?>

brakuje usuwania m. in. [quote], ale z tym poradzisz sobie.

Ten post edytował czachor 23.01.2005, 17:18:38
Go to the top of the page
+Quote Post
nexis
post
Post #5





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


Dzięki.

W międzyczasie znalazłem również coś:

  1. <?php
  2. $post_text = preg_replace('#[(.*)]#', '', $post_text);
  3. ?>


Działa dla wszystkich wyrażeń między znakiem "[", a znakiem "]".
Go to the top of the page
+Quote Post

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: 23.08.2025 - 13:10