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. ?>


questionmark.gif?


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
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ć


--------------------
Zapraszam na mój php blog, tworzenie stron.
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?


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
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


--------------------
how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free
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 "]".


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
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: 21.08.2025 - 14:47