Avatar billede acid-head Nybegynder
24. juni 2004 - 02:06 Der er 8 kommentarer og
1 løsning

Fjerne \n

Hej eksperter..

Jeg har en variabel som indeholder noget HTML, som kommer fra en WYSIWYG editor..

Variablen indeholder et linieskift et sted. En \n, for man kan kun se den hvis man udskriver i <pre>..

Er det muligt at fjerne det linieskift? Jeg har prøvet med nl2br, men så indsættes der bare et <br /> og liniskiftet forsvinder ikke.. Jeg har også prøvet med str_replace('\n','',$string); men det virker heller ikke da linieskiftet ikke findes i variablen som tekst..

Håber i forstår hvad jeg mener, og at I kan hjælpe.. :)
Avatar billede thedeathart Nybegynder
24. juni 2004 - 02:55 #1
prøv lige at poste din kode.
Avatar billede codebase Praktikant
24. juni 2004 - 04:12 #2
$string = ereg_replace("\n","",$string)
eller
$string = ereg_replace("\r\n","",$string);
Avatar billede razor Nybegynder
24. juni 2004 - 09:54 #3
Følgende vil erstatter forekomster af teksten '\n' (backslash, n) og ikke nylinje-tegnet:
 
  str_replace('\n','',$string);

Derimod vil du, hvis du havde brugt dobbelt gåseøjne, kunne opnå at \n ville blive tolket som et linjeskift:

  str_replace("\n",'',$string);

Vær dog opmærksom på at forskellige platforme, bruger forskellige linjeskift. På windows er det \r\n, på *nix \n og på mac \r :-)
Avatar billede acid-head Nybegynder
24. juni 2004 - 13:16 #4
Razors løsning virkede.. Tak :)
Avatar billede acid-head Nybegynder
24. juni 2004 - 15:10 #5
Det virker stadig ikke.. Det er noget mystisk over den string.. Den kommer jo fra en WYSIWYG editor, så har på fornemmelsen at den fucker det lidt op, for uanset hvad jeg prøver, så udskriver den stadig stringen med en newline..!
Avatar billede acid-head Nybegynder
24. juni 2004 - 15:17 #6
Findes der en slags newline som PHP ikke kan opfange, for når jeg kører

$string = str_replace("\n","test",$string);

Så lader det ikke til at den finder nogle newlines.. Selvom strengen skifter linier flere steder.. :(
Avatar billede acid-head Nybegynder
24. juni 2004 - 15:22 #7
Og selvom jeg kører en $indhold = str_replace("\n",'',$indhold); inden jeg gemmer indholdet i databasen, så bliver indholdet alligevel noget lignende det her..:

<P align=center><FONT face="Courier New" size=6>Hej!</FONT></P>
<P align=left><FONT face="Courier New" size=6>Oh my god, that's the funky shit!</P>
<P align=center><IMG src="pict0102_mini.jpg" align=left></P></FONT>

Jeg forstår det ikke.. :(
Avatar billede acid-head Nybegynder
24. juni 2004 - 15:27 #8
Det virker tilsyneladende hvis jeg kører stringen igennem med alle muligheder:

$string = str_replace("\r\n",'',$string);
$string = str_replace("\n",'',$string);
$string = str_replace("\r",'',$string);

Mærkeligt..?
Avatar billede xyborx Nybegynder
24. juni 2004 - 23:55 #9
Du kan nøjes med de to sidste. Problemet er sikkert det med at forskellige systemer bruger forskellige linieskift. En lidt anden mulighed er at klare begge to i én omgang:

$string = str_replace(array("\r","\n"),'',$string);
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