kostenloser Webspace werbefrei: lima-city


BB Code Problem Forum PHP

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    Hallo,

    ich bin gerade dabei, ein Forum in PHP zu programmieren.

    Mein Problem ist bei den BB Codes. Diese Methode benutze ich für die BB Code Umwandlung in HTML.

    Der Text vom Benutzer wird in $bbcode übermittelt:

    function bb_codes($bbcode) {
    
    	$bbcode = htmlentities ( $bbcode );
    	
    	/* Bold text */
    	$match ["b"] = "/\[b\](.*?)\[\/b\]/is";
    	$replace ["b"] = "<b>$1</b>";
    	
    	/* Italics */
    	$match ["i"] = "/\[i\](.*?)\[\/i\]/is";
    	$replace ["i"] = "<i>$1</i>";
    	
    	/* Underline */
    	$match ["u"] = "/\[u\](.*?)\[\/u\]/is";
    	$replace ["u"] = "<span style=\"text-decoration: underline\">$1</span>";
    	
    	/* Typewriter text */
    	$match ["tt"] = "/\[tt\](.*?)\[\/tt\]/is";
    	$replace ["tt"] = "<span style=\"font-family:monospace;\">$1</span>";
    	......
    	
    	/* Parse */
    	$bbcode = preg_replace ( $match, $replace, $bbcode );
    	
    	$bbcode = nl2br ( $bbcode );
    	
    	$bbcode = preg_replace_callback ( "/\[code\](.*?)\[\/code\]/ism", "pre_special", $bbcode );
    
    //Emoticons einfügen
    	$bbcode = emoticons ($bbcode);
    	
    	/* Remove <br> tags before quotes and code blocks */
    	//$bbcode = str_replace ( "<br />", "", $bbcode );
    	//$bbcode = str_replace ( "", "", $bbcode ); //Clean up any special characters that got misplaced...
    	
    	return $bbcode;
    }
    
    function pre_special($matches) {
    	$prep = preg_replace ( "/\<br \/\>/", "", $matches [1] );
    	return "<table border='0' style='width:98%; table-layout: fixed;'><pre><code>$prep</code></pre></table>";
    }


    Mit der Methode emoticons() ersetze ich die Emoticon Codes in die entsprechenden Grafiken (<img src="..">)

    Mein Problem:

    Der Code innerhalb von [ code ] und [ /code ] soll NICHT verändert werden durch die Methode emoticons().
    Außerhalb dieser [code] Tags aber natürlich schon.


    Wie kann ich das realisieren?
    Mir fällt nicht ein, wie ich das machen kann.

    Könnt Ihr mir helfen?

    Beitrag zuletzt geändert: 5.3.2013 17:24:02 von davy
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. h**s

    hi,

    sicherlich könnte man den pattern soweit verändern das bereiche innhalbe von [ code ]...[ /code ] nicht gematcht werden, oder eine callback-funktion zur überprüfung nutzen... aber da es noch einige andere stolperfallen bei bbcodes gibt würde ich dir empfehlen auf bereits bewährtes zurückzugreifen, zum beispiel dieses: http://www.christian-seiler.de/projekte/php/bbcode/index.html
  4. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    Von dieser fertigen Klasse habe ich auch schon gehört, aber hatte Probleme damit, diese bei mir einzubauen.

    Wie muss ich diese denn genau einbauen?
    Ist das einfach eine Klasse, der ich meinen BBCode einfach übergeben muss?
  5. h**s

    nun das ist doch dort (http://www.christian-seiler.de/projekte/php/bbcode/doc/de/kapitel2.php#einbinden) bestens beschrieben, sogar auf deutsch... :wow:
  6. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    hcms schrieb:
    nun das ist doch dort (http://www.christian-seiler.de/projekte/php/bbcode/doc/de/kapitel2.php#einbinden) bestens beschrieben, sogar auf deutsch... :wow:


    Danke, das habe ich garnicht gefunden. :thumb:
  7. h***e

    Hier so habe ich es in meinen Gästebuch gemacht!
    Das müsst gehen!
    $search = array("/\</si",
    "/\>/si",);
    
     $html = array("&#60;",
    "&#62;",);
    $e = preg_replace($search, $html, $e);





    Beitrag zuletzt geändert: 6.3.2013 20:12:25 von hpage
  8. 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!