net-board.net Archiv
[PHP] einfacher BBCode - Druckversion

+- net-board.net Archiv (https://net-board.net)
+-- Forum: Deine eigene Homepage (https://net-board.net/forumdisplay.php?fid=26)
+--- Forum: Scriptsprachen (+Datenbanksysteme) (https://net-board.net/forumdisplay.php?fid=19)
+---- Forum: Tutorials und Artikel: Programmieren und Datenbanken (https://net-board.net/forumdisplay.php?fid=15)
+---- Thema: [PHP] einfacher BBCode (/showthread.php?tid=2060)



[PHP] einfacher BBCode - kickedINtheHEAD - 12.07.2003

Um einen einfachen BBCode (hier für fett, kursiv und unterstrichen) zu schreiben wie er in vielen Foren und GB's vorhanden ist verwenden wir wieder reguläre Ausdrücke wie bei der Mail Überprüfung
Diesmal jedoch die Funktion eregi_replace um den regulären Ausdruck (BBCode) mit dem dafür zuständigen html Code zu ersetzen
am besten ist es diese Funktion erst beim ausgeben des gespeicherten Textes durchzuführen

PHP-Code:
function bbcode($text)
{
$text eregi_replace("\[b\]""<b>"$text);
$text eregi_replace("\[/b\]""</b>"$text);
$text eregi_replace("\[i\]""<i>"$text);
$text eregi_replace("\[/i\]""</i>"$text);
$text eregi_replace("\[u\]""<u>"$text);
$text eregi_replace("\[/u\]""</u>"$text);
return(
$text);



aufgerufen wird diese Funktion durch
PHP-Code:
function bbcode($text

hier wird nichts weiter getan als BBCode [b] durch html Code <b> ersetzt
(die / vor den [] dienen nur dazu das die Klammern nicht von PHP interpretiert werden)

edit: weiterer BBCode folgt später

© by kickedINtheHEAD


- pattex - 13.03.2004

Hi, das hat mir bisher schon sehr geholfen Smile Danke

Weißt du auch die BBCodes für Links (<a href=..) und bilder?

das wäre super Smile)


- kickedINtheHEAD - 14.03.2004

PHP-Code:
$text=eregi_replace("\[IMG\]([^[]+)\[/IMG\]""<img src=\"\\1\" border=\"0\" alt=\"\">"$text);
$text=eregi_replace("\[A\]([^[]+)\[/A\]""<a href=\"\\1\">"$text); 

i hoff mal des funzt


- pattex - 14.03.2004

danke, ich werde das dann gleich ausprobieren Smile)

So einen Code hatte ich früher mal. Aber da wurde gesagt das er nur bei neueren php versionen funktioniert


- codethief - 06.06.2004

Zitat:[code=php]function bbcode($text)
{
$text = eregi_replace("\[b\]", "<b>", $text);
$text = eregi_replace("\[/b\]", "</b>", $text);
$text = eregi_replace("\[i\]", "<i>", $text);
$text = eregi_replace("\[/i\]", "</i>", $text);
$text = eregi_replace("\[u\]", "<u>", $text);
$text = eregi_replace("\[/u\]", "</u>", $text);
return($text);
}
[/code]

Sicher, dass man diesen Code unbedingt nehmen sollte?
Dieser ist nämlich extrem langsam.
Ich würde dir für solche Fälle die Funktion str_replace() empfehlen.
Die PHP-Regexp sind für solche komplizierteren Fälle wie bei den Links gedacht.


Bis dann,

codethief


- kickedINtheHEAD - 06.06.2004

es ist eigentlich egal - da die abfrage nicht kompliziert ist wirst auch mit eregi_replace net länger brauchen Wink