Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] BBCode
Reiven
post
Post #1





Grupa: Zarejestrowani
Postów: 100
Pomógł: 1
Dołączył: 17.03.2006

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


Witam,
zacząłem robić sobie własne bbcode, lecz mam problem przy znaczniku
  1. [/PHP]
  2.  
  3. [php]<?PHP
  4. function BBCode($tekst){
  5. // $tekst = nl2br($tekst);
  6. $tekst = htmlspecialchars($tekst);
  7. $tekst = preg_replace("#\[b\](.*?)\[/b\]#si",'<b>\\1</b>',$tekst);
  8. $tekst = preg_replace("#\[i\](.*?)\[/i\]#si",'<i>\\1</i>',$tekst);
  9. $tekst = preg_replace("#\[u\](.*?)\[/u\]#si",'<u>\\1</u>',$tekst);
  10. $tekst = preg_replace("#\[s\](.*?)\[/s\]#si",'<s>\\1</s>',$tekst);
  11. $tekst = preg_replace("#\[img\](.*?)\[/img\]#si",'<img src="\\1" alt="" />',$tekst);
  12. $tekst = preg_replace("#\[url\](.*?)\[/url\]#si", "<A HREF=\"http://\\1\">\\1</A>", $tekst);
  13. $tekst = preg_replace("#\[url=(.*?)\](.*?)\[/url\]#si", "<A HREF=\"http://\\1\">\\2</A>", $tekst);
  14. $tekst = preg_replace("#\[quote\](.*?)\[/quote\]#si",'<blockquote class="cytat">\\1</blockquote>',$tekst);
  15. $tekst = preg_replace("#\[code\](.*?)\[/code\]#si",'<pre>\\1</pre>',$tekst);
  16. $tekst = preg_replace("#\[php\](.*?)\[/php\]#si", highlight_string('\\1', true),$tekst);
  17. return nl2br($tekst);
  18.  
  19. }
  20.  
  21. $s = "[php ]<?PHP echo 'test'; ?>[/php ]";
  22. echo BBCode($s);
  23.  
  24. #echo highlight_string(stripslashes("$s"), true);
  25.  
  26. ?>


nie chce mi to pokolorować składni :|
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Go to the top of the page
+Quote Post
Reiven
post
Post #3





Grupa: Zarejestrowani
Postów: 100
Pomógł: 1
Dołączył: 17.03.2006

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


tak mam zrobić:

  1. $tekst = preg_replace_callback('#\[php\](.*?)\[/php\]#si', highlight_string('\\1', true),$tekst);
(IMG:style_emoticons/default/questionmark.gif)

wywala mi błąd ...
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A myślisz, że link do manuala podałem z nudów?

Masz dodatkowo http://pl2.php.net/preg_replace
I tam jest przykład u użyciu modyfikatora e

Ten post edytował wookieb 5.10.2009, 12:39:57
Go to the top of the page
+Quote Post
zegarek84
post
Post #5





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


@Reiven - skorzystaj z funkcji podanych przez wookieb przy czym jeśli chodzi o bbcode dwuczłonowe (gdzie drugi człon jest taki sam tylko zamykający) podepnij pod to funkcję która rozpozna jakie to bbcode i zwróć wynik - wyrażenie regularne jakie możesz zastosować np.:
'#\[([^\]]+)\](.*?)\[/\\1\]#us'

do emoticonek skorzystaj z str_replace

Ten post edytował zegarek84 5.10.2009, 12:51:57
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 - 07:00