Bbcodes In Html

Lektor21

Erfahrenes Mitglied
Hallo!

Also ich habe einen String mit BB Codes. Habe nun folgende Funktion;

PHP:
function bb2html($home)
{
  $bbcode = array("<", ">",
                "[ list ]", "[ /list ]", 
                "[ img ]", "[ /img ]", 
                "[ b ]", "[ /b ]", 
                "[ u ]", "[ /u ]", 
                "[ i ]", "[ /i ]",
                '[ color="', "[ /color ]",
                '[ url="', "[ /url ]",
                '"]');
  $htmlcode = array("&lt;", "&gt;",
                "<ul>", "<li>", "</ul>", 
                "<img src=\"", "\">", 
                "<b>", "</b>", 
                "<u>", "</u>", 
                "<i>", "</i>",
                "<span style=\"color:", "</span>",
                '<a href="', "</a>",
                '">');
  $home_new = str_replace($bbcode, $htmlcode, $home);

}

und mein String, indem die Codes sind heisst $home. Nur leider funktioniert das nicht! Was mache ich falsch?
 
Die lokale Variable $home_new ist nur innerhalb der Funktion gültig. Und nachdem die Funktion durchlaufen wurde, werden alle lokalen Variablen verworfen.
 
Also habs jetzt so gemacht, funktioniert aber noch nicht so richtig;

PHP:
<?php

$result=mysql_query ("SELECT home FROM data") OR die(mysql_error());
while ($row=mysql_fetch_array($result)) {
$home=$row["home"];
}

$home = nl2br(trim($home));




function bb2html($home)
{
  $bbcode = array("<", ">",
                "[ list ]", "[ /list ]", 
                "[ img ]", "[ /img ]", 
                "[ b ]", "[ /b ]", 
                "[ u ]", "[ /u ]", 
                "[ i ]", "[ /i ]",
                '[ color="', "[ /color ]",
                '[ url="', "[ /url ]",
                '"]');
  $htmlcode = array("&lt;", "&gt;",
                "<ul>", "</ul>", 
                "<img src=\"", "\">", 
                "<b>", "</b>", 
                "<u>", "</u>", 
                "<i>", "</i>",
                "<span style=\"color:", "</span>",
                '<a href="', "</a>",
                '">');
  $home = str_replace($bbcode, $htmlcode, $home);

}

echo "$home";

?>
 
Hmm so hab ich es doch;

PHP:
function bb2html($home)
{
 
  $bbcode = array("<", ">",
                "[ list ]", "[ /list ]", 
                "[ img ]", "[ /img ]", 
                "[ b ]", "[ /b ]", 
                "[ u ]", "[ /u ]", 
                "[ i ]", "[ /i ]",
                '[ color="', "[ /color ]",
                '[ url="', "[ /url ]",
                '"]');
  $htmlcode = array("&lt;", "&gt;",
                "<ul>", "</ul>", 
                "<img src=\"", "\">", 
                "<b>", "</b>", 
                "<u>", "</u>", 
                "<i>", "</i>",
                "<span style=\"color:", "</span>",
                '<a href="', "</a>",
                '">');

  return str_replace($bbcode, $htmlcode, $home);

  return $home;

}

Aber funktioniert noch immer nicht, was mache ich denn falsch?
 
Eine Funktion kann nicht zwei Rückgabewerte haben.

PHP:
function bb2html($home)
{
 
  $bbcode = array("<", ">",
                "[ list ]", "[ /list ]", 
                "[ img ]", "[ /img ]", 
                "[ b ]", "[ /b ]", 
                "[ u ]", "[ /u ]", 
                "[ i ]", "[ /i ]",
                '[ color="', "[ /color ]",
                '[ url="', "[ /url ]",
                '"]');
  $htmlcode = array("&lt;", "&gt;",
                "<ul>", "</ul>", 
                "<img src=\"", "\">", 
                "<b>", "</b>", 
                "<u>", "</u>", 
                "<i>", "</i>",
                "<span style=\"color:", "</span>",
                '<a href="', "</a>",
                '">');

  return str_replace($bbcode, $htmlcode, $home);
} 
// Und so würde man die Funktion dann benutzen:
$var = bb2html($myText);
 
Wieso nimmst du eigentlich nicht einfach eine fertige Funktion? Hier im Forum gibt es doch genug davon. Denn einfach nur die einzelnen Tags zu ersetzen, ist keine gute Idee.
 
Super funktioniert schon mal!

Aber:

HTML:
Test

Test

[align=center]Test[/align]


funktioniert leider nicht und wird so ausgegeben!

Helft ihr mir bitte noch schnell? :rolleyes:
 
Zuletzt bearbeitet:
In deinem gezeigten Quelltext kommt dieser BB-Code gar nicht vor.
Wie soll man dir da helfen?

Und wie Gumbo bereits erwähnte, machst du dir das alles etwas leicht, weil du dir große Sicherheitslücken aufreißt.
Du müsstest die Werte die ankommen validieren und ggf. eben kürzen, damit keine Code Injektionen auftreten.
 
Zurück