Du kan gøre det ved at lave dine egne tags. f.eks. til fed skrift laver du et tag der hedder Fed Skrift Og når så teksten skal udskrives søger du teksten for tekst og replacer det med <strong>tekst</strong> så du udskifter dine [b] tags med <strong>.
Hej med dig [i]Æblegrød med det hele, <?php echo"Ups!"; ?>[i]
Kan du starte med:
$text = htmlentities($string); // $string er den tekst brugeren har skrevet $text = str_replace("[", "<", $text); $text = str_replace("]", ">", $text);
echo nl2br($text);
Du kan også lave et array med de specifikke tags som må bruges, og så kun udskifte dem.
showsource, men med den der vil du jo kunne sætte hvilket somhelst htmltag ind og det kan jo i sidste ende resultere i en smadret side, hvis den forkert finder det sjovt ;D
$text = htmlentities($string); // $string er den tekst brugeren har skrevet $text = str_replace("", "<b>", $text); $text = str_replace("", "</b>", $text);
echo nl2br($text);
Sådan ville jeg foreslå det og så lave dem for hvert eneste tag du skal give brugerne mulighed for at lave, på den ovenskrevne måde kan brugerne ikke indtaste hvilke somhelst htmlkode og så få det replaced.
showsource det er ikke for at stjæle din løsning, jeg ville bare sikre mig at hoejgaard fik begge muligheder.
Hvad med FCKEditor? Man embedder den på siden, og vupti kan brugerne skrive richtext direkte i browseren. Den laver godtnok kun almindelig html kode, men det er ganske overkommeligt at tilpasse editoren og skrive et filter i php der sørger for at det ikke bliver misbrugt. Jeg har brugt denne metode på et par af mine nyeste sites, og brugerne er meget glade for den.
okay nu har jeg indsat <script language="JavaScript"> var fokus = false; var cursorpos; function insertText(frmElm,text) { if (frmElm.selectionEnd != undefined) {cursorpos=frmElm.selectionEnd+text.length;frmElm.value = strInsert(frmElm.value,text,frmElm.selectionEnd);} else if (document.selection && fokus) {r = document.selection.createRange();r.text = text;} else if (document.selection == undefined) frmElm.value += text; else; } function mozPlaceCursor(frmElm) { if (frmElm.selectionEnd != undefined && cursorpos != undefined) { frmElm.setSelectionRange(cursorpos,cursorpos); } } function strInsert(input_str,insert_str,insert_position) { return input_str.substring(0,insert_position)+insert_str+input_str.substr(insert_position); } </script> <form name="form1"> <input type="button" onmousedown="insertText(this.form.felt,'<b>');" onmouseup="this.form.felt.focus();mozPlaceCursor(this.form.felt);"> <textarea name="felt" onfocus="fokus = true;" onblur="fokus = false;">Her er der en masse tekst</textarea> </form>
Men jeg vil gerne ha det bliver sådan, at eks. fed text allerede kan ses i textfeltet, når man klikker på knappen for fed text.. Kan man ikke lave det ??
Jo det kan sagtens lade sig gøre. FCKEditor laver et standard tekstfelt om til en WYSIWYG rich text editor. Jeg er ret sikker på at det er dette du har i tankerne. Selve editoren er simpel at arbejde med, den skal bare tilpasses lidt. Derefter skal du have lidt data validering på serversiden, så du er sikker på at der kun kommer tilladte tags med. Produktet er gratis og source koden følger med. Det virker i hvertfald i IE og Mozilla, og du kan paste tekst ind direkte fra F.eks. Word.
Den simpleste metode(synes jeg selv) er java script: Du lægger koden op på dit site og inkluderer filen fckeditor.js derfra. Herefter skal du bare have et <textarea> tag med et id felt, som du til sidst bruger i et funktionskald i javascript, for at erstatte det almindelige tekstfelt med FCK editoren.
Når du senere skal tilpasse editoren til dit eget site, gøres det vha. nogle arrays svjh. inde i selve koden.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.