BB-Code in Gästebuch

Hallo

Ich habe eine Webseite erstellt und dazu noch ein Gästebuch (PHP)
Nun möchte ich, dass der Benutzer BB-Code eingeben kann, um den Text zu formatieren.
Wie kann ich das machen?

Nino

Guten Tag,

Hi erstmal kannst du mir erstmal die Adresse der HP geben dann kann ich dir vielleicht helfen :wink:
MfG TiMMy

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi erstmal kannst du mir erstmal die Adresse der HP geben dann
kann ich dir vielleicht helfen :wink:
MfG TiMMy

Ach ja, die Adresse der HP ist: http://www.hirngespinst.tk
oder http://hirngespinst.bplaced.net

Es ist eine Schülerzeitung.

Hallo!

Warum mein Vorredner die URL braucht weiss ich zwar nicht, aber ich paste hier dir einfach mal „blöde“ eine Standardfunktion (gibt verschiedenste Varianten) rein:

function bbcode($str)
{

 $bbcodes = array(
 'url' =\> array(2, '[${2}](%2524%257B1%257D)'),
 'email' =\> array(2, '[${2}](mailto:%24%7B1%7D)'),
 'color' =\> array(2, '${2}'),
 'b' =\> array(1, ' **${1}**'),
 'u' =\> array(1, '<u>${1}</u>'),
 'i' =\> array(1, '_${1}_'),
 'center' =\> array(1, '${1}'),
 'img' =\> array(1, ''),
 );
 while (list($t, $s) = each($bbcodes))
 {
 $pattern = '';
 switch ($s[0])
 {
 case 1: $pattern = "#\[$t\](.\*)\[/$t\]#isU"; break;
 case 2: $pattern = "#\[$t=([^]]+)\](.\*)\[/$t\]#isU"; break;
 }

 if ($pattern)
 while ($str != ($str = preg\_replace($pattern, $s[1], $str, -1)));

 }
 return $str;
}

(damn, , und wird selbst in „pre“ interpretiert… sollte so wie bei „center“ aussehen; für DAS bekomm ich jetzt eh nen Einlauf :stuck_out_tongue:)

Einfach den Gästebuchtext über die Funktion laufen lassen! Zumindest bei mir tut es im Gästebuch :wink:

grüße
Geisterkarle

Ich weis nicht wie ich den Code in mein PHP-Dokument einbauen soll. (Bin PHP-Laie.)

Der Code von meinem Gästebuch:

<?php function no_reload()<br />{
 $gleichheit = false;
 if (isset($\_POST["uw"])) {
 $datei = "unique.txt";
 $fp = fopen($datei, "r+");
 $aw = fgets($fp, 30);
 if ($aw == $\_POST["uw"]) {
 $gleichheit = true;
 }
 rewind($fp);
 fputs($fp, $\_POST["uw"]);
 fclose($fp);
 }
 return $gleichheit;
}
$unique = no\_reload();
// Dateiname in Variable speichern
$datei = "comment.txt";
// Variable Kommentar gesetzt? Name und E-Mail nicht leer?
if (!empty($\_POST["comment"]) && !empty($\_POST["name"]) && !empty($\_POST["Email"]) && !$unique) {
 $comment = $\_POST["comment"];
 $name = $\_POST["name"];
 $Email = $\_POST["Email"];
 // Datei wird im Lese- und Schreib-Modus geöffnet
 $fp = fopen($datei, "r+");
 // alte Daten herauslesen und in $old sichern
 $old = fread($fp,filesize($datei));
 // E-Mail-Link entsteht
 $Email = "[$Email";  
 // Datum ermitteln und formatieren  
 $datum = date("j.n.Y");  
 // HTML-Zeichen maskieren, Slashes weg, Umbrüche erhalten  
 $comment = htmlspecialchars($comment);  
 $comment = stripslashes($comment);  
 $comment = nl2br($comment);  
 // Meinung zusammensetzen  
 $meinung=" **$name** ($Email) schrieb am " .  
 "_$datum_:  
$comment \n";  
 // Dateizeiger marschiert an den Anfang  
 rewind($fp);  
 // neue Meinung vor alte in Datei schreiben  
 fputs($fp, "$meinung \n $old");  
 // Datei schließen  
 fclose($fp);  
}  
readfile($datei);  
?\>  
](mailto:%24Email)

Hallo!
Ist ganz einfach:

Der Code von meinem Gästebuch:

<?php :function no_reload()
{ [snip] }

Hier einfach rein:

function bbcode($str)
{
[snip]
}

und dann deinen Kommentartext darüber laufen lassen, wie auch mit nl2br etc. schon gemacht:

[snip]
$comment = htmlspecialchars($comment);
$comment = stripslashes($comment);
$comment = nl2br($comment);

$comment = bbcode($comment);

[snip]
?>

Alles andere bleibt ([snip] bedeutet, dass ich das aus Übersichtlichkeit hier nicht zitiere, aber beibehalten :stuck_out_tongue:)

Sollte eigentlich tun :smile:

grüße
Geisterkarle