Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][HTML][MySQL]Konwertowanie BBCODE na HTML, BBCODE na HTML z bazy danych
Bellum
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 2.03.2010
Skąd: ta pewność?

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


Mam pytanie, otóż chciałbym dowiedzieć się w jaki sposób bądź od czego zacząć by na mojej stronie www tagi BBCODE już umieszczone w artykułach w bazie danych, były poprawnie interpretowane jako kod HTML na stronie.
  1. [font="Georgia"][center][size="3"][color="#483D8B"][b]Tytuł artykułu i dalsza jego treść jest tagowana w bbcode[/b][/color][/size][/center]
Wszystko, to powinno być interpretowane jako HTML jednak nie wiem jak zabrać się do napisania takiego skryptu. Proszę o porady.

Artykuły wyciągam z bazy danych FORUM IPB 3+, być może istnieje możliwość by się jakoś podpiąć, o ile opiera się, to wyłącznie na MySQL i nie jest pochowane w plikach forum (w co ja osobiście wątpię) dlatego liczę na pomoc.

Pozdrawiam

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Wicepsik
post
Post #2





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


preg_replace + wyrażenia regularne, str_replace

np.

  1. $tekst = str_replace('', '<b>', $tekst);
  2. $tekst = str_replace('', '</b>', $tekst);
Go to the top of the page
+Quote Post
Bellum
post
Post #3





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 2.03.2010
Skąd: ta pewność?

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


Cytat(Wicepsik @ 19.03.2010, 23:40:57 ) *
preg_replace + wyrażenia regularne, str_replace

np.

  1. $tekst = str_replace('', '<b>', $tekst);
  2. $tekst = str_replace('', '</b>', $tekst);

Dzięki osobiście znalazłem coś takiego: http://www.bbproject.net/2009/12/piszemy-parser-bbcode/
Niestety nie wiem jak to umieścić w tym kodzie, zrobiłem to w ten oto sposób:

  1. <?php
  2. function bbcode($text)
  3. {
  4. $patterns = array
  5. (
  6. '|\[b\](.*?)\[/b\]|i',
  7. '|\[i\](.*?)\[/i\]|i',
  8. '|\[u\](.*?)\[/u\]|i',
  9. '|\[color=([a-z]+)\](.*?)\[/color\]|i',
  10. '|\[size=([0-9]+)\](.*?)\[/size\]|i',
  11. '|\[url=(http://)?(.+?)\](.*?)\[/url\]|i'
  12. );
  13. $replacements = array
  14. (
  15. '<span style="font-weight: bold;">\1</span>',
  16. '<span style="font-style: italic;">\1</span>',
  17. '<span style="text-decoration: underline;">\1</span>',
  18. '<span style="color: \1;">\2</span>',
  19. '<span style="font-size: \1px;">\2</span>',
  20. '<a href="http://\2">\3</a>'
  21. );
  22. $text = str_replace("\n", '<br>', trim($text));
  23. $text = preg_replace($patterns, $replacements, $text);
  24. return $text;
  25. }
  26.  
  27. include"inc/mysql_access.php";
  28.  
  29. //-----------------------------------------Wyświetlanie Artów-------------------------------------------
  30.  
  31. $mysql = "SELECT t.title, p.post FROM posts p JOIN topics t ON p.topic_id = t.tid WHERE t.forum_id IN (11) AND p.author_id IN (2)";
  32. $wykonaj = @mysql_query($mysql) or die('<br />Niepoprawny wiersz bądź kolumna<br />'.mysql_error());
  33. echo '<table>';
  34. while ($wiersz = mysql_fetch_row($wykonaj))
  35. {
  36. echo '<tr><td style="background: #ccc; padding: 5px 5px 5px 5px;">'. $wiersz[0] .'</td></tr>' . '<tr><td style="background: #e4ebf2; padding: 5px 5px 5px 5px;">'. $wiersz[1] .'</td></tr>';
  37. }
  38. echo '</table>';
  39. mysql_close($connection);
  40. ?>
i teraz nie wiem co zrobić by pętla była parsowana.
  1. $text='<tr><td style="background: #ccc; padding: 5px 5px 5px 5px;">'. $wiersz[0] .'</td></tr>' . '<tr><td style="background: #e4ebf2; padding: 5px 5px 5px 5px;">'. $wiersz[1] .'</td></tr>';
  2. echo $text;

Tak nie działa, autor omówił ogólnie według mnie nie skupił się na istotnych szczegółach, być może nie jest to poradnik dla początkujących.
Go to the top of the page
+Quote Post

Posty w temacie


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: 4.10.2025 - 06:29