Avatar billede thedeathart Nybegynder
03. juli 2004 - 01:43 Der er 9 kommentarer og
1 løsning

str_replace på bestemte tags

Hej

Når jeg modtager et input fra mit textarea så laver jeg denne commando for at lave linjeskift:

$textk = str_replace("\n","[b]",$textk);

Og inden jeg viser min text bruger jeg htmlentities() for at undgå uønskede tags. Men jeg vil gerne tillade <b> og <i> tags, så hvordan kan jeg nemmest/bedst gøre dette ?
Avatar billede expnet Seniormester
03. juli 2004 - 01:58 #1
er det nå den gemmer eller nå du udskriver
Avatar billede thedeathart Nybegynder
03. juli 2004 - 01:59 #2
$textk = str_replace("\n","[b]",$textk);  er når jeg gemmer

htmlentities() er når jeg udskriver
Avatar billede expnet Seniormester
03. juli 2004 - 02:01 #3
isted for [b] så ret til <b>
Avatar billede thedeathart Nybegynder
03. juli 2004 - 02:02 #4
ups.. det var et forsøg. Jeg plejer at bruger:

$textk = str_replace("\n","<br>",$textk);
Avatar billede Slettet bruger
03. juli 2004 - 02:06 #5
Lad være med at lave linieskift om før du gemmer, og brug i stedet nl2br efter du har brugt htmlentities, når du skal udskrive.
Avatar billede thedeathart Nybegynder
03. juli 2004 - 02:07 #6
nl2br ?
Avatar billede detox Nybegynder
03. juli 2004 - 02:14 #7
Avatar billede thedeathart Nybegynder
03. juli 2004 - 02:17 #8
jep, nu virker det som det skal.. Da sandbox kom med den rigtige funtion får han points.
Dvs. Lægger du et svar ?

:-)
Avatar billede Slettet bruger
03. juli 2004 - 03:45 #9
Selve nl2br-funktionen gør ca. det samme, som din egen str_replace("\n","<br>",$textk); men den er muligvis lidt mere effektiv, da den er beregnet til netop denne udskiftning og intet andet.

Mere præcist, så laver den "\n" om til "<br />\n".

Du har stadig ikke fået svar på at tillade <b> og <i>, men der kan du måske bruge http://dk.php.net/manual/en/function.strip-tags.php

Den har dog den ulempe, at den helt fjerner tags, som ikke er tilladt, så i et forum, hvor man snakker om html er den ikke så smart.

En anden metode kunne være følgende efter du har kørt htmlentities:

$textk = str_replace("&lt;b&gt;","<b>",$textk);
$textk = str_replace("&lt;i&gt;","<i>",$textk);
Avatar billede thedeathart Nybegynder
03. juli 2004 - 04:02 #10
jeg bruger faktisk str_replace på den måde :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester