re-BB?

mille

Erfahrenes Mitglied
Code:
also wie wir [ b ], [ u ] zu <b> und <u> machen ist ja allseits bekannt... 
aber wie wandle ich <b> zu [ b ] um und etc. ich brauch die umwaldungscodes für 
<b> zu [ b ]
<u> zu [ u ]
<a href="http://www.link.de">www.link.de<a> zu  www.link.de

wofür brauch ich das?
ich brauch das für die editierung von news die vorher mit bb code geschrieben wurden... wenn ich in der textarea den text als value einfüge sollen halt nicht die html codes sondern die bb codes da stehn...

danke :)
 
genau andersrum? :rolleyes:
bau dir halt reguläre ausdrücke zusammen, die die entsprechenden html-tags in bb-code zurückwandeln.

nachtrag:
ansonsten speicher doch einfach die bb-tags in der datenbank und wandel die erst beim auslesen in html-code um. wenn der text beim auslesen in eine textarea geschrieben werden soll, überspringst du halt das umwandeln in html-code.
 
mh das 2te würde einen zu großen aufwand bedeuten... ich brauch ja bloß noch die zeilen zur re umwandlung....

aber andrerseits muss ich sagen ich kann keine regulären ausdrücke, das einzigste was ich zu meinem laster zu geben muss :-( ...

gibts jemand der mir sowas basteln koennte,... ich kann machen was ich will - ich check die ausdrücke nicht :(
 
Ganz einfach geht es doch mit:
PHP:
<?php
$string=str_replace("<b>","[b]",$string);
?>

usw.

ist natürlich nicht so elegant wie reguläre Ausdrücke...
 
mh schon ... aber funzt das auch bei
</b> zu [ /b ]

und bei dem folgenden gehts nicht, ich muss ja zwischen den tags noch was auslesen, das is ja das schlimme :( ... aber das andre nehm ich schonma, danke :)

Code:
<a href="http://www.seite.de">www.seite.de</a> ZU

Code:
www.seite.de
 
das machst du mit regexp, wie oben schon geschrieben.

wenn du nicht weisst wies geht, schau dir entweder regexp an, oder, wie es asphyxia schon empfholen hat: speichere kein html in deiner datenbank, sondern wandel den bbcode erst beim auslesen in html um, das ist doch eh viel leichter...
 
Speicher die Texte mit den BB Codes in der Datenbank, erst wenn du sie ausgeben willst, wirst du sie mit Hilfe der BBCodes erst umwandeln.
 
das halte ich für keine gute Idee, da man so bei der Ausgabe immer eine erhöhte Serverlast in Kauf nehmen muss. Ich würde immer beim Erstellen umwandeln und dann beim Editieren zurück umwandeln. Allerdings habt ihr bei kleinen Seiten auf schnellen Servern recht, da sollte man erst bei der Ausgabe umwandeln, weil da Geschwindigkeit keine Rolle spielt.

PHP:
$content = preg_replace("°(\[URL=)(http|https|ftp)(:\/\/\S+)(])(.+?)(\[\/URL\])°is" , "<a href=\"\\2\\3\">\\5</a>" , $content);

Dies ist ein regulärer Ausdruck, der Tags wie [ URL =http://www...] [ / URL] in die entsprechenden Links umwandelt.

PHP:
$content = preg_replace("°<a href=\"(http|https|ftp)(:\/\/\S+)(\">)(.+?)</a>°is" , "[ url=\\2\\3\]\\5[ /url]" , $content);

Dieser Ausdruck würde den Link wieder zurück umwandeln.

PHP:
$content = preg_replace("°(\[ URL])(\S+)(\[\ /URL])°is" , "<a href=\"http://\\2\">\\2</a>" , $content);

Den habe ich noch nicht geprüft, aber theoretisch müsste der [ URL ] http://www.irgendwas.de [ / URL ] in den entsprechenden Link umwandeln.

Ein Rückwandlungsscript könnte dann so aussehen:
PHP:
$content = preg_replace("°(<a href=")(\S+)(">)(\S+)(</a>)°is" ,"[URL=\\2]\\2[\/URL]" , $content);

Wie gesagt, das habe ich noch nicht geprüft.

Ciao, F.o.G.
 
Zuletzt bearbeitet:
ach mann, ich hasse dieses Forum.... Das zerhaut mir meine Regexe..... Naja, nur ein Profi weiß, wo jetzt noch überall was verändert werden muss. Ich weiß nicht, wie ich die Regexe hier so reinbekomme, wie sie im Script aussehen müssten.

Also: Bei Angaben wie \2 müsste eigentlich \ \2 hin. ohne Leerzeichen.

After Edit: dieses Forum macht ja alle Escapes rückgängig. Und das innerhalb der PHP Code Blöcke .... hmmpppf

Ciao, F.o.G.
 
Zurück