[PHP] bb code zu html

Bitte deinen Threadtitel ändern!

(
PHP:
 BB Code zu HTML )

[PHP]
<?
$text=str_replace("[b]","<b>",$text);
$text=str_replace("[/b]","</b>",$text);
?>
So mach ich das immer.. ;)

Liebe Grüße,
Martin
 
** No fullquoting :hand: ** edit by theHacker

So, da ich mich bei sowas immer frage wie man sowas genau anstellt, frag ich hier einfach mal ;) Zu gewinnen gibts nen grünen Popel...^^

Wenn du jetzt nen BB-Text hast, wie konvertierst du den genau um, also wie machst du das dann mit der Datei (Einlesen / Ausgabe) ? Würd mich freuen, wenn du mir das mal Schritt für Schritt erläutern könntest :roll:
 
Wenn du jetzt nen BB-Text hast, wie konvertierst du den genau um, also wie machst du das dann mit der Datei (Einlesen / Ausgabe) ? Würd mich freuen, wenn du mir das mal Schritt für Schritt erläutern könntest :roll:
Hmm ich versteh die Frage nich richtig..
Also du übergibst eigentlich die Eingabe einfach aus einem Formular und den rest übernimmt str_replace(); ..

Auszug:
PHP:
$betreff=htmlentities($betreff);
$etext=htmlentities($etext);
$etext=nl2br($etext);
$etext=str_replace("[b]","<b>",$etext);
$etext=str_replace("[/b]","</b>",$etext);
$etext=str_replace("[i]","<i>",$etext);
$etext=str_replace("[/i]","</i>",$etext);
$etext=str_replace("[u]","<u>",$etext);
$etext=str_replace("[/u]","</u>",$etext);
$etext=str_replace("[size=1]","<font size=1>",$etext);
$etext=str_replace("[size=2]","<font size=2>",$etext);
$etext=str_replace("[size=3]","<font size=3>",$etext);
$etext=str_replace("[size=4]","<font size=4>",$etext);
$etext=str_replace("[size=5]","<font size=5>",$etext);
$etext=str_replace("[/size]","</font>",$etext);
$etext=str_replace("[url]","<a href=https://",$etext);
$etext=str_replace("[/url]",">Link</a>",$etext);

Ich muss aber dazu sagen, das es wesentlich bessere Lösungen geben wird.

Liebe Grüße,
Martin
 
Titel war ich mal so frei ;) Und bitte keine Fullquotes :pray:

@Topic:
du-nervst's Lösung funktioniert zwar, ist aber nicht das non-plus-ultra, da öffnendes und schließendes Tag seperat bearbeitet werden.

Der BB-Code
Code:
[PLAIN][b]Fehler[/PLAIN][/v]
... würde nicht funktionieren, sondern fehlhaftes HTML erzeugen:
HTML:
<b>Fehler[/v]
Besser ist es, mit regulären Ausdrücken zu arbeiten, die nur komplette [b]...[/b]-Teile umwandeln:
PHP:
$htmlcode=preg_replace("/\[b\](.*?)\[\/b\]/is","<b>$1</b>",$bbcode);

edit:
Sch***ß-BB-Parsing :evil: Das vom vB3 is auch ned perfekt.
 
Zuletzt bearbeitet:
PHP:
<?
$text=str_replace("[b]","<b>",$text);
$text=str_replace("[/b]","</b>",$text);
?>
So mach ich das immer.. ;)

Aber doch bitte nicht so, wofür gibt es denn Arrays und reguläre Ausdrücke 8O

Wenn du bei str_replace bleiben willst:
PHP:
$text = str_replace(array("[b]", "[/b]"), array("<b>", "</b>"), $text);
Ich würde das trotzdem eher mit regexp machen.

Edit: Mist, theHacker war 3 Sekunden schneller *duckundweg* ;)
 
Hi, danke für eure schnellen antworten.
ich habe einen der codes jetzt in meine seite eingebaut...
PHP:
$text=readfile("sys/txt/bbtest.txt");	
	$text = str_replace(array("[url]", "[/url]"), array("<a href=", ">LINK</a>"), $text);
echo ($text);
nur so zum test. un der datei bbtest.txt steht folgendes:
...
nur leider wird der Text genauso ausgegeben. Also ohne bbcode zu html. kann mir einer sagen, wo hier der Fehler liegt?
 
Zuletzt bearbeitet:
So, dann nochmal meine Frage praxisbezogen:

Es gibt ja viele Codeschnipsel, die nur aus ein paar Zeilen bestehen. Ich frage mich nun, wie man die verwendet.

Wenn folgender Code (hackers code) gegeben ist:
PHP:
$htmlcode=preg_replace("/\[b\](.*?)\[\/b\]/is","<b>$1</b>",$bbcode);

und folgender BB-Code text:

HTML:
In der vierten Runde brach ihm der Kiefer und verursachte höllische Schmerzen, Arthur Abrahams Gesicht mutierte immer mehr zur gruseligen Fratze.
Doch der Box-Weltmeister aus Berlin gab nicht auf und wurde belohnt.
Mit [B]eisernem Kampfeswillen[/B] verteidigte er seinen IBF-Titel im Mittelgewicht durch einen 3:0-Punktsieg gegen den Kolumbianer Edison Miranda nach zwölf Runden erfolgreich.

[B]"Arthur hat sich ein Denkmal gesetzt"[/B]

"Ich habe immer noch einen Puls von [B]200[/B]. So eine Schlacht habe ich nicht erwartet. Arthur hat sich ein Denkmal gesetzt. Wenn jemand acht Runden mit [B]gebrochenem Kiefer[/B] boxt, nötigt das mehr als Respekt ab", sagte Promoter Wilfried Sauerland.

Wie bekommt man nun aus den beiden Komponenten, einen Text wo der bbcode durch html code ersetzt ist.

Also: Was für dateien muss man erstellen, was für andern Code braucht man noch?

PS: Bestimmt ne totale 0,001 Niveau Frage für euch, aber mich beschäftigts schon lange un nun will ichs mal wissen ;)
 
@tleilax:
Danke, hat funktioniert...
@du-nervst:
ich hatte den code mit bb geschrieben, aber der wird ja hier im forum auch angezeigt...
wie kann man denn hier bb code anzeigen, also so, dass der nich gleich umgewandelt wird?
@Berbatov:
du musst erst der variabel $htmlcode nen text zuweisen,
dann den code eingfügen, der den bb code zu html ändert und dann
PHP:
 echo ($htmlcode);
 
Es gibt ja viele Codeschnipsel, die nur aus ein paar Zeilen bestehen. Ich frage mich nun, wie man die verwendet.
Die Variablen sind eigentlich selbsterklärend in den Codeschnippseln.

Wenn du jetzt allerdings ein totaler PHP-Noob bist, der noch nie ein Script geschrieben hat, dann kannst du mit den Schnibbelz natürlich nichts anfangen ;)

Um jetzt deinen Beispieltext zu nehmen:
Setz ihn in eine Variable (später wird die Variable durch ein Formular gefüllt, wie hier im Forum, wenn du auf "Antworten" drückst) und lass den Schnibbel drüber. Das Ergebnis gib einfach in einem HTML-Dokument aus.

PHP:
$bbcode="In der vierten Runde brach ihm der Kiefer und verursachte höllische Schmerzen, Arthur Abrahams Gesicht mutierte immer mehr zur gruseligen Fratze.\n";
$bbcode.="Doch der Box-Weltmeister aus Berlin gab nicht auf und wurde belohnt.\n";
$bbcode.="Mit [b]eisernem Kampfeswillen[/b] verteidigte er seinen IBF-Titel im Mittelgewicht durch einen 3:0-Punktsieg gegen den Kolumbianer Edison Miranda nach zwölf Runden erfolgreich.\n";
$bbcode.="\n";
$bbcode.="[b]\"Arthur hat sich ein Denkmal gesetzt\"[/b]\n";
$bbcode.="\n";
$bbcode.="\"Ich habe immer noch einen Puls von [b]200[/b]. So eine Schlacht habe ich nicht erwartet. Arthur hat sich ein Denkmal gesetzt. Wenn jemand acht Runden mit [b]gebrochenem Kiefer[/b] boxt, nötigt das mehr als Respekt ab\", sagte Promoter Wilfried Sauerland.\n";

// Umwandeln
$htmlcode=preg_replace("/\[b\](.*?)\[\/b\]/is","<b>$1</b>",$bbcode);

// Die \n noch zu <br /> machen
$htmlcode=nl2br($htmlcode);

// im HTML-Dokument ausgeben
echo $htmlcode;
Auch das is nur ein Codeschnippsel, da kein HTML-Dokument erzeugt wird. D.h. du kannst es nur einsetzen, wenn du das restliche HTML-Dokument auch erzeugst und ausgibst.

edit:
wie kann man denn hier bb code anzeigen, also so, dass der nich gleich umgewandelt wird?
[noparse] verwenden ;)