BBCode Class

EuroCent

Klappstuhl 2.0
Hallo ich wieder mal!

Also ich bin am Probieren wie ich eine einfache BBCode klasse erstelle mit:

fett, Kursiv und Unterstrichen!

Aber leider weiss ich nicht wie genau ich da anfangen soll!

Könnte mir da jemand eventuell helfen?

also derzeit habe ich das

PHP:
<?php
class bbcodes() {

  function bbcode() {

  }
}
?>

Bisher bin ich auch noch nicht wirklich weiter

Ich hoffe mir kann da einer helfen!

Danke euch schon mal im voraus
 
Verstehe ich nicht, was willst du damit erreichen? Wo möchtest du die BBCodes einfügen? In HTML wäre es doch besser mit z.B. <b></b> zu arbeiten... Was hält dich davon ab? ^^;
Alternativ, wenn du auf die eckigen Klammern stehst kannst du auch gaaanz einfach str_replace(); benutzen... oder nicht? Speicherst halt beides (String und Ersetzungen) in Arrays und benutzt die Funktion :)
Tut mir echt leid, wenn ich da was nicht richtig verstanden habe :o
 
Verstehe ich nicht, was willst du damit erreichen? Wo möchtest du die BBCodes einfügen? In HTML wäre es doch besser mit z.B. <b></b> zu arbeiten... Was hält dich davon ab? ^^;
Alternativ, wenn du auf die eckigen Klammern stehst kannst du auch gaaanz einfach str_replace(); benutzen... oder nicht? Speicherst halt beides (String und Ersetzungen) in Arrays und benutzt die Funktion :)
Tut mir echt leid, wenn ich da was nicht richtig verstanden habe :o

Na ich will/möchte für mein CMS-Gästebuch auch BBCode zulassen!

Daher wäre es doch sinnvoll eine Class zu haben die nur einmal aufgerufen wird wenn man sie in dem moment braucht?

Also sprich wenn ich im Text "[ b ] BlaBla[ /b ]"

Es soll halt eben diese dann in <b></b> umgewandelt werden!

Ich hoffe nun sollte man mich verstehen können!

Die standart umwandlung der BBCodes hab ich schon aber möchte es ja nicht ständig in jedem SQL ausgeben müssen... zb.: für die Nachricht des GB´s und des Comments

Oder eben bei News plus den Kommentaren
 
Ich muss meinem VorVorredner Recht geben dafür extra eine Klasse ? Es gibt auch schon fertige Klassen siehe hier
Aber wiegesagt man braucht eigentlich nur eine Funktion zu schreiben die eben diese BBCodes in Html-Tags übersetzt mithilfe von regulären Ausdrücken oder eben str_replace().

Wenn du unbedingt selber eine Klasse schreiben willst dann guck mal in der Suche :)
 
Ich muss meinem VorVorredner Recht geben dafür extra eine Klasse ? Es gibt auch schon fertige Klassen siehe hier
Aber wiegesagt man braucht eigentlich nur eine Funktion zu schreiben die eben diese BBCodes in Html-Tags übersetzt mithilfe von regulären Ausdrücken oder eben str_replace().

Wenn du unbedingt selber eine Klasse schreiben willst dann guck mal in der Suche :)

Wiegesagt

Das mit dem Suchen und Ersetzen hab ich selber fertig

Mir geht es nur darum eine Function zu haben die ich Aufrufen kann wann imer ich sie benötige!

Beispiel aufruf:

für Message: $bbcodes->bbcode($message);
Für Comment: $bbcodes->bbcode($comments);

und so weiter

Ich meine mit dem was ich jetzt hab:

PHP:
    $message = stripslashes($message);
    $message = htmlspecialchars($message);
    $message = preg_replace("/\[B\](.*)\[\/B\]/isU","<b>$1</b>", $message);
    $message = preg_replace("/\[I\](.*)\[\/I\]/isU","<i>$1</i>", $message);
    $message = preg_replace("/\[U\](.*)\[\/U\]/isU","<u>$1</u>", $message);
    $message = preg_replace("/\[CENTER\](.*?)\[\/CENTER\]/isU","<center>$1</center>", $message);
    $message = preg_replace("/\[url=(.*)\](.*)\[\/URL\]/isU", "<a href=\"$1\" target=\"_blank\">$2</a>", $message);
    $message = preg_replace("/\[URL\](.*)\[\/URL\]/isU", "<a href=\"$1\" target=\"_blank\">$1</a>", $message);
    $message = preg_replace("/\[email\](.*)\[\/email\]/isU", "<a href=\"mailto:$1\">$1</a>", $message);
	$message = preg_replace("/\[email=(.*)\](.*)\[\/email\]/isU", "<a href=\"mailto:$1\">$2</a>", $message);
    $message = preg_replace("/\[img\](.*)\[\/img\]/isU", "<img src=\"$1\" />", $message);
    $message = preg_replace("/\[code\](.*)\[\/code\]/isU", "<pre>$1</pre>", $message);
    $message = preg_replace("/\[COLOR=(.*)\](.*)\[\/COLOR\]/isU", "<font color=\"$1\">$2</font>", $message);
    $message = preg_replace("/\[SIZE=(.*)\](.*)\[\/SIZE\]/isU", "<font size=\"$1\">$2</font>", $message);
    $message = preg_replace("/\[font=(.*)\](.*)\[\/FONT\]/isU", "<font face=\"$1\">$2</font>", $message);
    $message = preg_replace("/\[list=(.*)\](.*)\[\/LIST\]/isU", "<ol start=\"1\" type=\"$1\">$2</ol>", $message);
    $message = preg_replace("/\[*\](.*)\[\/*\]/isU", "<li>$1</li>", $message);
	// Smilies
    $message = str_replace(":)","<img src=\"images/smilies/smilie.gif\" />",$message);
    $message = str_replace(":D","<img src=\"images/smilies/biggrin.gif\" />",$message);
    $message = str_replace(";)","<img src=\"images/smilies/wink.gif\" />",$message);
    $message = str_replace(":o","<img src=\"images/smilies/redface.gif\" />",$message);
    $message = str_replace(":?","<img src=\"images/smilies/confused.gif\" />",$message);
    $message = str_replace(":(","<img src=\"images/smilies/frown.gif\" />",$message);
    $message = str_replace(":P","<img src=\"images/smilies/tongue.gif\" />",$message);
    $message = str_replace(";P","<img src=\"images/smilies/tongue2.gif\" />",$message);
    $message = str_replace(":rolleyes:","<img src=\"images/smilies/rolleyes.gif\" />",$message);
    $message = str_replace(":]","<img src=\"images/smilies/pleased.gif\" />",$message);
    $message = str_replace("x(","<img src=\"images/smilies/mad.gif\" />",$message);
    $message = str_replace(":evil:","<img src=\"images/smilies/evil.gif\" />",$message);
    $message = str_replace("8)","<img src=\"images/smilies/cool.gif\" />",$message);
    $message = str_replace(":baby:","<img src=\"images/smilies/baby.gif\" />",$message);
    $message = str_replace(":happy:","<img src=\"images/smilies/happy.gif\" />",$message);
	$message = str_replace("=o","<img src=\"images/smilies/eek.gif\" />",$message);
	$message = str_replace(":cry:","<img src=\"images/smilies/crying.gif\" />",$message);
	$message = nl2br($message);

Ich hoffe das es überhaupt machbar ist mit einer einzigen bbcode function die Variablem: $message so zu ersetzen wie ich diese beispiel in: $bbcodes->bbcode($test); nehmen könnte
 
Meinst du vielleicht so:
PHP:
<?php
class bbcodes 
{

	function bbcode ( $message )
	{
	 	$message = stripslashes($message);
		$message = htmlspecialchars($message);
		$message = preg_replace("/\[B\](.*)\[\/B\]/isU","<b>$1</b>", $message);
		$message = preg_replace("/\[I\](.*)\[\/I\]/isU","<i>$1</i>", $message);
		$message = preg_replace("/\[U\](.*)\[\/U\]/isU","<u>$1</u>", $message);
		$message = preg_replace("/\[CENTER\](.*?)\[\/CENTER\]/isU","<center>$1</center>", $message);
		$message = preg_replace("/\[url=(.*)\](.*)\[\/URL\]/isU", "<a href=\"$1\" target=\"_blank\">$2</a>", $message);
		$message = preg_replace("/\[URL\](.*)\[\/URL\]/isU", "<a href=\"$1\" target=\"_blank\">$1</a>", $message);
		$message = preg_replace("/\[email\](.*)\[\/email\]/isU", "<a href=\"mailto:$1\">$1</a>", $message);
		$message = preg_replace("/\[email=(.*)\](.*)\[\/email\]/isU", "<a href=\"mailto:$1\">$2</a>", $message);
		$message = preg_replace("/\[img\](.*)\[\/img\]/isU", "<img src=\"$1\" />", $message);
		$message = preg_replace("/\[code\](.*)\[\/code\]/isU", "<pre>$1</pre>", $message);
		$message = preg_replace("/\[COLOR=(.*)\](.*)\[\/COLOR\]/isU", "<font color=\"$1\">$2</font>", $message);
		$message = preg_replace("/\[SIZE=(.*)\](.*)\[\/SIZE\]/isU", "<font size=\"$1\">$2</font>", $message);
		$message = preg_replace("/\[font=(.*)\](.*)\[\/FONT\]/isU", "<font face=\"$1\">$2</font>", $message);
		$message = preg_replace("/\[list=(.*)\](.*)\[\/LIST\]/isU", "<ol start=\"1\" type=\"$1\">$2</ol>", $message);
		$message = preg_replace("/\[*\](.*)\[\/*\]/isU", "<li>$1</li>", $message);
		// Smilies
		$message = str_replace(":)","<img src=\"images/smilies/smilie.gif\" />",$message);
		$message = str_replace(":D","<img src=\"images/smilies/biggrin.gif\" />",$message);
		$message = str_replace(";)","<img src=\"images/smilies/wink.gif\" />",$message);
		$message = str_replace(":o","<img src=\"images/smilies/redface.gif\" />",$message);
		$message = str_replace(":?","<img src=\"images/smilies/confused.gif\" />",$message);
		$message = str_replace(":(","<img src=\"images/smilies/frown.gif\" />",$message);
		$message = str_replace(":P","<img src=\"images/smilies/tongue.gif\" />",$message);
		$message = str_replace(";P","<img src=\"images/smilies/tongue2.gif\" />",$message);
		$message = str_replace(":rolleyes:","<img src=\"images/smilies/rolleyes.gif\" />",$message);
		$message = str_replace(":]","<img src=\"images/smilies/pleased.gif\" />",$message);
		$message = str_replace("x(","<img src=\"images/smilies/mad.gif\" />",$message);
		$message = str_replace(":evil:","<img src=\"images/smilies/evil.gif\" />",$message);
		$message = str_replace("8)","<img src=\"images/smilies/cool.gif\" />",$message);
		$message = str_replace(":baby:","<img src=\"images/smilies/baby.gif\" />",$message);
		$message = str_replace(":happy:","<img src=\"images/smilies/happy.gif\" />",$message);
		$message = str_replace("=o","<img src=\"images/smilies/eek.gif\" />",$message);
		$message = str_replace(":cry:","<img src=\"images/smilies/crying.gif\" />",$message);
		$message = nl2br($message);
		return $message;
	} 

}
$bbcodes = new bbcodes;
?>
 
Meinst du vielleicht so:
PHP:
<?php
class bbcodes 
{

	function bbcode ( $message )
	{
	 	$message = stripslashes($message);
		$message = htmlspecialchars($message);
		$message = preg_replace("/\[B\](.*)\[\/B\]/isU","<b>$1</b>", $message);
		$message = preg_replace("/\[I\](.*)\[\/I\]/isU","<i>$1</i>", $message);
		$message = preg_replace("/\[U\](.*)\[\/U\]/isU","<u>$1</u>", $message);
		$message = preg_replace("/\[CENTER\](.*?)\[\/CENTER\]/isU","<center>$1</center>", $message);
		$message = preg_replace("/\[url=(.*)\](.*)\[\/URL\]/isU", "<a href=\"$1\" target=\"_blank\">$2</a>", $message);
		$message = preg_replace("/\[URL\](.*)\[\/URL\]/isU", "<a href=\"$1\" target=\"_blank\">$1</a>", $message);
		$message = preg_replace("/\[email\](.*)\[\/email\]/isU", "<a href=\"mailto:$1\">$1</a>", $message);
		$message = preg_replace("/\[email=(.*)\](.*)\[\/email\]/isU", "<a href=\"mailto:$1\">$2</a>", $message);
		$message = preg_replace("/\[img\](.*)\[\/img\]/isU", "<img src=\"$1\" />", $message);
		$message = preg_replace("/\[code\](.*)\[\/code\]/isU", "<pre>$1</pre>", $message);
		$message = preg_replace("/\[COLOR=(.*)\](.*)\[\/COLOR\]/isU", "<font color=\"$1\">$2</font>", $message);
		$message = preg_replace("/\[SIZE=(.*)\](.*)\[\/SIZE\]/isU", "<font size=\"$1\">$2</font>", $message);
		$message = preg_replace("/\[font=(.*)\](.*)\[\/FONT\]/isU", "<font face=\"$1\">$2</font>", $message);
		$message = preg_replace("/\[list=(.*)\](.*)\[\/LIST\]/isU", "<ol start=\"1\" type=\"$1\">$2</ol>", $message);
		$message = preg_replace("/\[*\](.*)\[\/*\]/isU", "<li>$1</li>", $message);
		// Smilies
		$message = str_replace(":)","<img src=\"images/smilies/smilie.gif\" />",$message);
		$message = str_replace(":D","<img src=\"images/smilies/biggrin.gif\" />",$message);
		$message = str_replace(";)","<img src=\"images/smilies/wink.gif\" />",$message);
		$message = str_replace(":o","<img src=\"images/smilies/redface.gif\" />",$message);
		$message = str_replace(":?","<img src=\"images/smilies/confused.gif\" />",$message);
		$message = str_replace(":(","<img src=\"images/smilies/frown.gif\" />",$message);
		$message = str_replace(":P","<img src=\"images/smilies/tongue.gif\" />",$message);
		$message = str_replace(";P","<img src=\"images/smilies/tongue2.gif\" />",$message);
		$message = str_replace(":rolleyes:","<img src=\"images/smilies/rolleyes.gif\" />",$message);
		$message = str_replace(":]","<img src=\"images/smilies/pleased.gif\" />",$message);
		$message = str_replace("x(","<img src=\"images/smilies/mad.gif\" />",$message);
		$message = str_replace(":evil:","<img src=\"images/smilies/evil.gif\" />",$message);
		$message = str_replace("8)","<img src=\"images/smilies/cool.gif\" />",$message);
		$message = str_replace(":baby:","<img src=\"images/smilies/baby.gif\" />",$message);
		$message = str_replace(":happy:","<img src=\"images/smilies/happy.gif\" />",$message);
		$message = str_replace("=o","<img src=\"images/smilies/eek.gif\" />",$message);
		$message = str_replace(":cry:","<img src=\"images/smilies/crying.gif\" />",$message);
		$message = nl2br($message);
		return $message;
	} 

}
$bbcodes = new bbcodes;
?>

Wenn dies t wie ich es mir denke dann ein Dickes Danke

Es sollte eben so en:

Wenn ich in comments $bbcodes->bbcode($commentsmessage); setzte dann sollte dies in der class verwendet werden statt $message

oder eben mit $text

Wenn es möglich ist!
 
Vielleicht zur Verdeutlichung. Es ist egal ob wie du den Parameter einer Funktion nennst. Die Variable $commentsmessage wird an die "interne" Variable $message übergeben, da ich bei den Parameter den Name Message definier.
PHP:
function bbcode ( $message ) {
 
Achso... ja dann werd ich das mal so versuchen

Sollte ich probleme haben werd ich hier nochmal anragen!

Vorerst DANKE dir für den Code und die Hilfe
 
Zurück