Krasses php Problem

  • Hi,

    Ich hoffe ihr könnt mir helfen den ich habe mal wieder ein neues php Problem.
    Und zwar habe ich mittlererweile mittels

    bbxxcode(htmlspecialchars($message));

    geschafft das der bbcode umgewandelt wird, normales html in posts jedoch nicht.
    Seit dem Funktioniert mein BBCode "code" jedoch nicht mehr so wie er soll, siehe angehängte Datei.

    Hier der Source:

    Code
    $output = preg_replace_callback('#\[code\](.*)\[/code\]#isU', create_function('$str', 'return "<table class=\"tableb\"><tr><td>Code:</td></tr></table><table class=\"tablea\"><tr><td>".highlight_string($str[1],TRUE)."</td></tr></table>";'), str_replace("\n", "", $output));


    Ich hoffe es kann mir jemand dabei helfen den Code dem entsprechend hinzubiegen.

    lg
    Michael


  • Hier der Source:

    Code
    $output = preg_replace_callback('#\[code\](.*)\[/code\]#isU', create_function('$str', 'return "<table class=\"tableb\"><tr><td>Code:</td></tr></table><table class=\"tablea\"><tr><td>".highlight_string($str[1],TRUE)."</td></tr></table>";'), str_replace("\n", "", $output));

    Du erwartest nicht ernsthaft, dass jemand dieses Chaos für dich wartet oder?

  • Bitte lerne mal, wie HTML5 und CSS3 funktionieren, der Tabellenfuckup da kann doch nicht ernstgemeint sein.

    Des weiteren lerne mal, wie man PHP-Code übersichtlich schreibt, das da tut sich keiner an.

  • highlight_string erwartet rohen PHP-Code als Eingabe, keinen durch htmlspecialchars vorgefilterten String, der zum Beispiel das einleitende PHP-Tag <? zu &lt;? verstümmelt.

    htmlspecialchars_decode kann die Umformung von htmlspecialchars rückgängig machen.


  • Bitte lerne mal, wie HTML5 und CSS3 funktionieren, der Tabellenfuckup da kann doch nicht ernstgemeint sein.

    Des weiteren lerne mal, wie man PHP-Code übersichtlich schreibt, das da tut sich keiner an.

    Ich mache das mit absicht so.
    Ich mag halt tabellen, ist doch okay? Du kannst ja Divs benutzen.


    highlight_string erwartet rohen PHP-Code als Eingabe, keinen durch htmlspecialchars vorgefilterten String, der zum Beispiel das einleitende PHP-Tag <? zu &lt;? verstümmelt.

    Ja und wie kann ich das Problem beheben ohne auf htmlspecialchars zu verzichten?
    kann ich das irgendwie für die funktion quasi deaktivieren? Ich brauche da echt mal hilfe ^^

    lg
    Michael

  • Divs verwendet auch kein Mensch mehr. Heutzutage zeichnet man semantisch die Inhalte aus. Ein Blogbeitrag ist ein <article>, ein Seitenbereich eine <section>, deine Codebox da ein <code>, ein Header ein <header> usw. HTML zeichnet nur noch Inhalte aus und hält sich aus dem Design heraus.

  • da bin ich wohl etwas altmodisch

    Code
    $output = preg_replace_callback('#\[code\](.*)\[/code\]#isU', create_function('$str', 'return "<table class=\"tableb\"><tr><td>Code:</td></tr></table><table class=\"tablea\"><tr><td>".htmlspecialchars_decode(highlight_string($str[1],TRUE))."</td></tr></table>";'), str_replace("\n", "", $output));

    Problem halb gelöst, wie vermeide ich nun das die Smilies umgewandelt werden?
    Und das highlighting funktioniert auch nicht leider.

    Hier mal die komplette Funktion wie sie aktuell aussieht:

    lg
    Michael [/i]

  • Vielen dank, das klappt!

    Hier die komplette Funktion, ich bin sicher die ist mal für den ein oder anderen ganz nützlich:


    lg
    Michael

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!