html durch bbcode ersetzten

  • Hi, ich habe mir ein kleines Newsscript geschrieben, und wollte gerne, das wenn ich :irgendwas: eingebe, das dann ein Smiley kommt, so wie hier halt, oder auch wenn ich ";.)" (ohne ".") mache, das dann dieses Gesicht kommt, zudem soll wenn ich [ b ] schreib dann < b > gemeint ist.
    Also quasi bbcodes.
    Ich habe mir gedacht, das man das ja nur in der Ausgabedatei veraendern muss, weil den kraempel in die DB zu schicken ist ja schwachsinn, oder?
    Also schicke ich mal den code von der Datei wo ich die news auslese:

    Ich hoffe ihr koennt mir da weiterhelfen, das wuerde mir es um einiges Leichter machen! :)


    MFG

  • Also, ich schreibe es mit "bbcodes" in die DB rein, also

    Hallo, das ist ein Testnews ": laugh :" . Mal schaun ob das alles so klappt "; )"

    GreenRover, danke fuer deine Seite, ich habe folgendes versucht, jedoch klappt das noch nciht so ganz, hier der Code

    Das ist wieder die Datei, mit der ich die Daten ausgebe.. Irgendwas stimmt da nicht! :P er gibt immernoch : laugh : als Wort aus, nicht als BBcode.. :?

  • dann lies tda sganze nochmals durch....


    str_replace("[/B]" "[/b]" $inhalt)

    wurde nicht bis gestern noch die parameter einer funktion mit , getrennt ?!

    str_replace("[/B]", "[/b]", $inhalt)

  • :oops:
    ja, wenn ich mich recht entsinne dann stimmt das wohl.. :P

    Aber trotz dem code witrd anstatt [ b ] FETT [/ b ] einfach das im Text ausgegeben..:-?

  • ja da du ein echter witzbold bist.....

    <?=nl2br($row['inhalt'])?>

    ROFL

    $inhalt = str_replace(";)", "<img src=\"/images/laugh.gif\" border=\"0\" alt=\"\">", nl2br($row['inhalt']));

    <?=$inhalt ?>

  • sorry, aber ich bin Neu in Php, man darf doch wohl nochmal Fehler machen, oder nicht? :)

    Das klappt jetzt, halb zumindest! :P

    Code
    $inhalt = str_replace("[/b]", "[/b]", nl2br($row['inhalt'])); 
    $inhalt = str_replace("[b]","[b]", nl2br($row['inhalt']));

    Er ersetzt jetzt nur das [ b ] zu und jedoch nciht das [ /b] zu
    Der code ist denke ich mal richtig, muss man evtl noch was mit dem "/" machen?

    Vielen dank schonmal fuer die schnelle Hilfe

  • str_replace('[b]','[b]', nl2br($row['inhalt']));

    so der \ ist bei " ein sonderzeichen und muss wen ndann mit \\ geschrieben werden.

    Ja fehlermachen ist schon erlaubt aber ein wenig auf die variabellen achten also das A nicht B sein kann soviel sollte klar sein.

    Und irgent wie fühle ich mich langsam verarsch da du heute schon der 3te von der sorte bist.

  • Ja, da hast du recht, ich hab aus euphorie nicht auf die Variablen geschaut, das tut mir auch leid, dir desswegen sinnlose Fragen zu stellen! :)
    Aber komisch ist, das er immer nur den Letzten string ersetzt, hier ein beispiel:

    Code
    $inhalt = str_replace("[/b]", "[/b]", $row['inhalt']); 
    $inhalt = str_replace("[b]","[b]", $row['inhalt']);
    $inhalt = str_replace("[u]","<u>", $row['inhalt']);
    $inhalt = str_replace("[/u]","</u>", $row['inhalt']);

    Da ersetzt er nur das [/ u], alleswas dadrueber steht, ist ihm egal.
    wenn ich die letzte zeile weglassen wuerde, wuerde er nur das [ u ] ersetzen.
    Wodran liegt das?

  • Danke, ist schon gut, ich habe es Umgestaltet. Ich habe es einfach alles in ein Array geschrieben, sieht außerdem noch sauberer aus! :P
    Falls es jemand interessiert wie, hier ist der Code:

  • ja erstens das und d2tens hast du imemr iweder den gleichen ausgangsert genutzt :-p

    so das du den entwert imemr überschrieben hast ohne ihn zu nutzen.

  • Ja, faellt mir auch grade auf!! ;)

    Mal ne Frage gaaaaaaanz weit weg von diesem Topic, aber kennst du evtl ein Script, oder nen Tutorial, wie man Bilder bewerten lassen kann, und mit Top10 und so?

  • neee... das ding kann man abr mit etwas Geschick in 30 min schreiben.

    on daher nicht nöitg :-p

    bastel erstmal eien gallerie dann noch eien bewertungs db tabelle dazu.

    dann halt jede bewertung dem bild zurodnen von 1-10 würde ich mit select boxen machen die alel das selbe name="" tag tragen.

    zur auswertung dann das in eien rray schmeissen die gesamten daten zählen (mysql_num_rows() ) und halt bewertung $bewertung[10]++; für jedne zahler ,dann weist du wie viele bewerutngen es zu jeweiligen punkt gab und dann noch wie viele insgesamt.

    wenn es jetzt noch fragen giuebt, hilft der mathe lehrer.

  • Hi, eine kleine Zwischenfrage, was ist an diesem array hier falsch?!

    HOffe ihr koennt mir helfen, sibbi

  • EDIT: Hab den fehler schon selbst gefunden,hab das schließende ' vergessen..
    Ohman die doof!:P