kostenloser Webspace werbefrei: lima-city


BB-Codes mit PHP umwandeln

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    anti-atomkraft

    Kostenloser Webspace von anti-atomkraft

    anti-atomkraft hat kostenlosen Webspace.

    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 &#091; bzw. &#093; 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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. d*****k

    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::lol:
    //$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? :wink:
    $firstcode = str_replace("[", "<", $firstcode);
    $firstcode = str_replace("]", ">", $firstcode);


    Oder wie hattest du dir das gedacht? :confused:

    Beitrag zuletzt geändert: 1.5.2011 21:43:12 von dermaik
  4. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!