Avatar billede connorz Nybegynder
26. maj 2003 - 21:22 Der er 14 kommentarer og
1 løsning

Fjernelse af linieskift

Jeg har et TEXTAREA-element, som bliver sat ind i en database. Et sådant kan jo godt indeholde linieskift. Jeg har brug for at få erstattet disse linieskift med \n da dataene skal bruge i JS-kode! Jeg har prøvet med:
str_replace("\n","\\n",$data)
Men denne sætter godt nok \n ind, hvor der er linieskift, men linieskiftet forbliver!
Hvad kan jeg gøre?
Avatar billede connorz Nybegynder
26. maj 2003 - 21:24 #1
Avatar billede schaefner Juniormester
26. maj 2003 - 21:28 #2
Et linjeskift i et textarea er \n
Avatar billede tipsen Nybegynder
26. maj 2003 - 21:31 #3
\n = newline (ny linie/linieskift)
\r = carriage return (vognretur)

...gamle reminiscenser fra skrivemaskineæraen...
Avatar billede connorz Nybegynder
26. maj 2003 - 21:39 #4
hvorfor virker str_replace("\n","\\n",$data) så kun delvist?
Skal jeg bruge \r?!
Avatar billede jakoba Nybegynder
26. maj 2003 - 21:51 #5
alt efter styresystem kan linieskift i et tekstarea også være \r\n (og andet)

men kan du ikke blot bruge addslashes funktionen
Avatar billede connorz Nybegynder
26. maj 2003 - 21:53 #6
nej - har prøvet med addslashes - det giver ingen forskel - den tager umiddelbart ikke linieskiftet med!
Avatar billede connorz Nybegynder
26. maj 2003 - 22:04 #7
det virkede med str_replace("\n\r","\\n",$data)
:D
den skal åbenbart have i både pose og sæk ;)
I får 10p hver hvis I altså hurtigt smider et svar :)
Avatar billede tipsen Nybegynder
26. maj 2003 - 22:07 #8
Hvorfor var det du skulle fjerne det påståede linieskift - som du dog stadig væk ikke har gjort?
Avatar billede connorz Nybegynder
26. maj 2003 - 22:31 #9
linieskiftet forsvandt og jeg fik indsat \n i stedet - når dette så blevet sendt til JS, blev det til et linieskift igen - JS tager, iflg. roenving, et linieskift (læs: end of line, EOL) som slut på kommando (idet JS ikke forlanger semikolon) - derfor skal jeg have teksten som "én" linie, men med en markering af linieskift, så JS forstår det som  linieskift!
Dette lykkedes med str_replace("\n\r","\\n",$data)
PHP angiver åbenbart et linieskift med \n\r, så derfor var det i min første løsning kun den ene del, der blev erstattet af et "JS-linieskift"
Lang forklaring, men jeg har da vist lært noget hva'? :D
Avatar billede jakoba Nybegynder
26. maj 2003 - 22:43 #10
connors >> husk at det ikke kun er dit eget styresystem du skal tage højde for, man alle dem dine besøgende kan tænkes at bruge:
    str_replace("\n\r|\r\n|\r|\n","\\n",$data)
Avatar billede connorz Nybegynder
26. maj 2003 - 22:59 #11
også i forhold til JS?
Avatar billede jakoba Nybegynder
26. maj 2003 - 23:22 #12
jep
Avatar billede connorz Nybegynder
07. juni 2003 - 15:16 #13
jakoba og tipsen>>>smid svar...
Avatar billede tipsen Nybegynder
07. juni 2003 - 16:02 #14
Never mind.
Avatar billede connorz Nybegynder
03. august 2003 - 19:29 #15
hvis ingen vil have point - tager jeg dem selv - jeg accepterer mig selv om 7 dage - men tak for hjælpen så ;)
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