Ich habe mir auch mal eine solche Funktion geschrieben. Da bekommst du keine Probleme mit verschachtelten Tags...
Allerdings ist die Optimierung mit der
bbcode id die phpbb drin hat nicht drin. Aber das wäre ja leicht zu ergänzen...
Code:
function
bbcode($text)
{
return preg_replace(Array
(
'/\[strong\](.+?)\[\/strong\]/',
'/\[i\](.+?)\[\/i\]/',
'/\[b\](.+?)\[\/b\]/',
'/\[u\](.+?)\[\/u\]/',
'/\[(h[1-6])\](.+?)\[\/\1\]/',
'/\[img\](.+?)\[\/img\]/',
'/\[img="(.+)"\](.+?)\[\/img\]/',
'/\[
url=(.+?)\](.+?)\[\/
url\]/',
'/\[google\](.+?)\[\/google\]/e',
'/(?<=\s)([a-zA-Z]+?:\/\/[^\s"]+?)(?=\s)/'
),Array
(
'[b]\1[/b]',
'[i]\1[/i]',
'[b]\1[/b]',
'<u>\1</u>',
'<\1>\2</\1>',
'[img]\1[/img]',
'[img]\2[/img]',
'[
url="\1"]\2[/
url]',
'\'[
url="http://www.google.de/search?q=\'.urlencode(\'\1\').\'"]\1[/
url]\'',
'[
url="\1"]\1[/
url]'
), $text);
}
EDIT:
Zitat von
Khabarakh:
Bei verschachtelten Tags oder falschem
HTML-Code bekommst du ein Problem. Letzteres sollte wohl nocht tolerierbar sein
.
Wie soll man denn da zu falschem
HTML kommen...?
EDIT2: Der google-tagt kann zu einer Sicherheitslücke führen, wenn du ' nicht escaped hast.
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.
Have a lot of fun!