Avatar billede lsskaarup Nybegynder
28. juni 2005 - 09:52 Der er 7 kommentarer og
2 løsninger

Få \n skrevet i string

Jeg har et textarea, som driller mig lidt. Teksten skal kunne skrives på normal vis, men hensyn til linieskift.

Indholdet reelt gemt i en lang string, som så indholder php-kode. Dette bliver lagt i en fil på serveren, som så includes når den skal bruges.

Mit problem er at stringen skal bruges i en Outlook mailform, og her driller linieskiftene mig lidt. Jeg kan kun få mailformen frem, hvis linieskift er enten \n, \r eller \r\n, alt andet så sker der ikke noget.

Jeg kan derfor have en funktion som altså kan omforme linieskift i stringen til f.eks. \n. Derudover skal stringen også vises i textarea igen, så her skal jeg have en som går den modsatte vej.

Koden som håndtere det omtalte textarea, det er $val['besked'] der er problemet:
$res .= '$EMAIL['.$val['betegnelse']."][besked] = '".$val['besked']."';\n";

Jeg har prøvet med nl2br(), str_replace og lignede, men enten gjorde de ingen forskel eller også skabte de en fejl
Avatar billede barklund Nybegynder
28. juni 2005 - 10:10 #1
Jeg gætter på, at du mener, at i $val['besked'] skal newlines laves lidt om - det er lidt kryptisk, men prøv noget med:

$besked = str_replace(array("\n","\r"),array('\n','\r'), $val['besked']);

Og så brug $besked.

Ikke 100% sikker på, at jeg forstår problematikken, men altså :)

--
Morten Barklund
Avatar billede dennismp Nybegynder
28. juni 2005 - 10:11 #2
$conv = array("\n" => '\n', "\r" => '\r');

// Den ene vej
$str = strtr($str,$conv);

// og den anden
$str = strtr($str,array_flip($conv));
Avatar billede lsskaarup Nybegynder
28. juni 2005 - 10:28 #3
Naaa, problematikken er også lidt svær at forklarer. Det som jeg synes er mærkeligt, er at så vidt jeg ved, så er standarden ved textarea \r\n, ikke? Teksten bliver for så vidt også skrevet rigtigt, men jeg tror idet jeg bruger javascript til at kalde mailformen med så fatter den ikke at der er linieskift, for i kildekoden står teksten decideret med skjulet linieskift, hvis man kan kalde dem det.

Så i stedet for :

Dette er en testet email i forbindelse med Staalnet.
Du må gerne vil besvare, så jeg kan tjekke om virker efter hensigten.
mvh
Lars Skaarup Sørensen

Vil jeg godt have :

Dette er en testet email i forbindelse med Staalnet.\nDu må gerne vil besvare, så jeg kan tjekke om virker efter hensigten.\nmvh\nLars Skaarup Sørensen

Da javascriptet godt kan fatte det. Så er der jo bare det, at ved læsning til textareaet så skal det ligne det første eksempel.

Men jeg prøver lige jeres forslag
Avatar billede lsskaarup Nybegynder
28. juni 2005 - 10:34 #4
Yes, barklund din løsning virker, så skal teksten bare vises i textareaet under \r\n
Avatar billede lsskaarup Nybegynder
28. juni 2005 - 10:38 #5
og dennismp, din løsning virker den anden vej, så I må jo dele pointene.
Avatar billede dennismp Nybegynder
28. juni 2005 - 10:39 #6
Den skulle gerne virke begge veje
Avatar billede barklund Nybegynder
28. juni 2005 - 10:58 #7
Mjææs :)
Avatar billede lsskaarup Nybegynder
28. juni 2005 - 11:37 #8
--> dennismp det tvivler jeg ikke på, men nu forsøgte jeg med barkslunds først, uheldigvis for dig ;-)

Men tak for hjælpen begge
Avatar billede barklund Nybegynder
28. juni 2005 - 11:41 #9
Så lidt ;) Tark for points
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