BB-Codes mit PHP umwandeln
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anfang
atomkraft
ausnahmeregelung
befehl
code
datei
eckigen klammern
eintrag
ersetzen
ersten code
formatierung
frage
geschehen url
index
inhalt
sinn
springen
tag
text
url
-
Huhu,
bin gerade dabei, meinen Chatbereich mit BB-tag/code">Codes auszustatten,
die dann mittels PHP in HTML umgewandelt werden.
Das funktioniert auch alles wunderbar, nur scheitere ich gerade an der Ausnahmeregelung für
den [ code ] - Tag.
Folgendes wäre der Code-Tag:
$eintrag = preg_replace('#\[code\](.*)\[/code\]#isU', "</cite><u><big>Code:</big></u><br><textarea readonly class=\"code\" wrap=\"off\" cols=40 rows=5>$1</textarea><br><cite>", $eintrag); $eintrag = preg_replace('#\[code=(.*)\](.*)\[/code\]#isU', "</cite><u><big>Code </big>($1)<big>:</big></u><br><textarea readonly class=\"code\" wrap=\"off\" cols=40 rows=5>$2</textarea><br><cite>", $eintrag);
Und folgendes soll (jedoch nur innerhalb dieses Befehls) nicht umgewandelt werden:
$eintrag = str_replace("\r\n\r\n", "<p>", $eintrag); $eintrag = str_replace("\r\n", "<br>", $eintrag);
Desweiteren sollen andere BB-Codes innerhalb dieses Tags nicht umgewandelt werden.
ICh dachte mir, man könnte die eckigen Klammern zu [ bzw. ] umwandeln; jedoch darf dies auch nur innerhalb des Tags geschehen.
Hier geht es zu meiner Seite.
EIne Registration ist für den Chat jedoch erforderlich...
Add: So... Das mit \n zu <br> bzw. <p> lässt sich mittels <pre>-Tag lösen...
Ist es möglich, zu überprüfen, ob zwischen den [ code ]-Tags eine eckige Klammer steht?
Dann könnte man diese nämlich ersetzen und zurück an den Anfang der Datei springen.
Es würde jedoch keinen SInn machen, immer zurückzuspringen... ?
Beitrag zuletzt geändert: 27.4.2011 21:26:12 von anti-atomkraft -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
anti-atomkraft schrieb:
Ist es möglich, zu überprüfen, ob zwischen den [ code ]-Tags eine eckige Klammer steht?
Dann könnte man diese nämlich ersetzen und zurück an den Anfang der Datei springen.
Es würde jedoch keinen SInn machen, immer zurückzuspringen... ?
Damit du überhaupt mal eine Antwort bekommst, zumal deine Frage auch wirklich sehr umfangreich und dein gesamtes Vorhaben für mich nicht lösbar sind, möchte ich wenigstens dazu eine Methode andeuten:
//$text ist der eingegebene Chat-Text $firstcode = substr($text, strpos($text, '[co de]')+6, strpos($rss, '[/co de]')-strpos($rss, '[code]')-6);
Die Leerzeichen müssen natürlich weg, aber sonst zerschießt das hier die Code-Formatierung im Board...
Somit beinhaltet die Variable $firstcode den Inhalt des ersten code-BB-Codes, der in $text vorkommt. Eine eckige Klammer könntest du dort sicherlich selbst suchen, oder?
$firstcode = str_replace("[", "<", $firstcode); $firstcode = str_replace("]", ">", $firstcode);
Oder wie hattest du dir das gedacht?
Beitrag zuletzt geändert: 1.5.2011 21:43:12 von dermaik -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage