/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Linieskift i email...??
Fra : Henrik Jensen


Dato : 11-02-01 04:35

Hej gruppe!
Her har jeg ikke været før - hvor længe har denne ng eksisteret?

Nå, men jeg prøver altså at få sendt en email med mail() i et php-script,
hvor email-body´en hentes fra et textarea, men hvor de linieskift der
indtastes skal med i mail´en... Det er sikkert noget med formateringen af
emailen, men hvordan??
Jeg har sat mit textareal op med wrap="physical" og jeg har også prøvet med
"message", og alligevel skrives al teksten fra textarea´et blot ud i én lang
smøre.
(Dette gælder kun email´en! Hvis jeg udskriver det selv samme indhold med
nl2br() kommer der linieskift i browseren der beskuer det...)

Jeg har selvfølgelig siddet og fedtet lidt med det uden held, men hvis nogen
lige ved hvor man kan finde den præcise information om email-formatering vil
jeg da være taknemmelig

På forhånd tak - og: "Må det blive en god gruppe!"

--
/Henrik
- Stay in the rhythm!
- http://www.netwerk.dk






 
 
Jonas Koch Bentzen (11-02-2001)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 11-02-01 11:00

Henrik Jensen skrev:

> Nå, men jeg prøver altså at få sendt en email med mail() i et
> php-script, hvor email-body´en hentes fra et textarea, men hvor de
> linieskift der indtastes skal med i mail´en...

Prøv med wordwrap($tekst, 72);

Det skal lige siges, at den funktion kun findes i PHP 4.0.2 og opefter.

http://dk.php.net/manual/en/function.wordwrap.php

--
http://jonaskochbentzen.dk/

Christian Doeleman (11-02-2001)
Kommentar
Fra : Christian Doeleman


Dato : 11-02-01 13:13


"Jonas Koch Bentzen" <ingen.epostadresse@eksempel.dk> skrev:
> > Nå, men jeg prøver altså at få sendt en email med mail() i et
> > php-script, hvor email-body´en hentes fra et textarea, men hvor de
> > linieskift der indtastes skal med i mail´en...

Personligt sætter jeg ikke wrap-parametren i textareas og har ikke problemer
med, at linieskift ikke bliver medtaget.

> Prøv med wordwrap($tekst, 72);
> http://dk.php.net/manual/en/function.wordwrap.php

Løser dette Henriks problem? Hvorfor skal emails ombrydes til 72 tegn? Jeg
har set flere scripts, der gør dette inden mailen udsendes, men aldrig
rigtigt forstået hvorfor?


Med venlig hilsen
Christian



Kjaer og Monsson (11-02-2001)
Kommentar
Fra : Kjaer og Monsson


Dato : 11-02-01 14:32


Christian Doeleman <usenet@NOSPAM.doeleman.dk> skrev:
> Løser dette Henriks problem? Hvorfor skal emails ombrydes til 72 tegn? Jeg
> har set flere scripts, der gør dette inden mailen udsendes, men aldrig
> rigtigt forstået hvorfor?

Det har til dels noget at gøre med hvor mange tegn på en linie der højest må
være før at det bliver ubehageligt at læse. Det ligger lige omkring 60-70
ord.
Og så hvist også noget at de fleste email-klienter automatisk ombryder ved
72 tegn - tror jeg. Ret mig hvis jeg tager fejl.

Hilsen Peter



Henrik Jensen (11-02-2001)
Kommentar
Fra : Henrik Jensen


Dato : 11-02-01 14:38

>
> Personligt sætter jeg ikke wrap-parametren i textareas og har ikke
problemer
> med, at linieskift ikke bliver medtaget.

Prøvede dette - men med samme resultat... Linieskiftene bliver ikke
medtaget.

> > Prøv med wordwrap($tekst, 72);
> > http://dk.php.net/manual/en/function.wordwrap.php
>
> Løser dette Henriks problem? Hvorfor skal emails ombrydes til 72 tegn? Jeg

Den laver bare et linieskift efter 72 tegn - som _bliver_ medtaget i
mail´en, men de manuelt indtastede linieskift kommer stadig ikke med.

> har set flere scripts, der gør dette inden mailen udsendes, men aldrig
> rigtigt forstået hvorfor?

Det er god skik at lave et linieskift efter ca. 72 tegn, da mailklienter som
ikke automatisk ombryder teksten derved viser indholdet på nogle tilpas
korte linier i stedet for at gå langt ud over skærmkanten.

--
/Henrik
- Stay in the rhythm!
- http://www.netwerk.dk






Henrik Jensen (11-02-2001)
Kommentar
Fra : Henrik Jensen


Dato : 11-02-01 15:08

Problemet er løst med:
$msg_body .= wordwrap(ereg_replace ("\n", "\n\r", $mb_comment), 72);

Sagen er at linieskift-typen er en '\n' og den forstås fint af Unix som et
linieskift, mens Windows benytter '\n\r' (newline + carriage return).
Til info benytter mac kun '\r' for at lave et linieskift.

Hvorfor skulle man dog også nøjes med én standard når man kan lave tre?

--
/Henrik
- Stay in the rhythm!
- http://www.netwerk.dk



Henrik Jensen <hj@netwerk.dk> wrote in message
news:Ixwh6.59$ea6.12384@news000.worldonline.dk...
> >
> > Personligt sætter jeg ikke wrap-parametren i textareas og har ikke
> problemer
> > med, at linieskift ikke bliver medtaget.
>
> Prøvede dette - men med samme resultat... Linieskiftene bliver ikke
> medtaget.
>
> > > Prøv med wordwrap($tekst, 72);
> > > http://dk.php.net/manual/en/function.wordwrap.php
> >
> > Løser dette Henriks problem? Hvorfor skal emails ombrydes til 72 tegn?
Jeg
>
> Den laver bare et linieskift efter 72 tegn - som _bliver_ medtaget i
> mail´en, men de manuelt indtastede linieskift kommer stadig ikke med.
>
> > har set flere scripts, der gør dette inden mailen udsendes, men aldrig
> > rigtigt forstået hvorfor?
>
> Det er god skik at lave et linieskift efter ca. 72 tegn, da mailklienter
som
> ikke automatisk ombryder teksten derved viser indholdet på nogle tilpas
> korte linier i stedet for at gå langt ud over skærmkanten.
>
> --
> /Henrik
> - Stay in the rhythm!
> - http://www.netwerk.dk
>
>
>
>
>



CHRistian (11-02-2001)
Kommentar
Fra : CHRistian


Dato : 11-02-01 16:36

"Henrik Jensen" <hj@netwerk.dk> wrote:

>Sagen er at linieskift-typen er en '\n' og den forstås fint af Unix som et
>linieskift, mens Windows benytter '\n\r' (newline + carriage return).

Hmm, jeg synes da fint, at min win95 forstår et \n som linjeskift?

--
123456789 123456789 123456789 123456789 123456789 123456789 123456789 12
Tilfældig-Signatur-prog-test,4: http://members.nbci.com/chrzzz/soft/s2f/
(F)Agent-newbie / Usenetnewbie-prøven / Styr på OEs 'Sv' -> 'Re'...
http://www.whitehat.dk/cbh/

Povl H. Pedersen (11-02-2001)
Kommentar
Fra : Povl H. Pedersen


Dato : 11-02-01 18:43

On Sun, 11 Feb 2001 16:35:45 +0100,
CHRistian <nospam@direkte.org> wrote:
>"Henrik Jensen" <hj@netwerk.dk> wrote:
>
>>Sagen er at linieskift-typen er en '\n' og den forstås fint af Unix som et
>>linieskift, mens Windows benytter '\n\r' (newline + carriage return).
>
>Hmm, jeg synes da fint, at min win95 forstår et \n som linjeskift?

Lige en definition:
'\n' = 0x0A = 10 = Newline
'\r' = 0x0D = 13 = Linefeed
'\n\r' er to tegn, og bruges af DOS PC'ere fordi man skulle sende
begge dele til printeren for at få den til både at lave linieskift
og flytte skrivehovedet tilbage.

Så en DOS tekstfil fylder mere end den tilsvarende tekstfil på
UNIX og DOS.

Prøv at lave en tekstfil i Wordpad med 10 x 80 tegn. Den vil på
UNIX + Mac være 90 tegn stor (et linieskifgt fr enden af hver linie),
men 100 tegn på en PC.

PC'erne har altid leveret unødig tom luft :)

--
Povl H. Pedersen - Please send unsolicited advertising to abuse@whitehouse.gov
Position: N 56 09 37 - E 010 12 29

Christian Laursen (11-02-2001)
Kommentar
Fra : Christian Laursen


Dato : 11-02-01 18:54

pope@home.terminal.dk (Povl H. Pedersen) writes:

> Lige en definition:
> '\n' = 0x0A = 10 = Newline
> '\r' = 0x0D = 13 = Linefeed
> '\n\r' er to tegn, og bruges af DOS PC'ere fordi man skulle sende
> begge dele til printeren for at få den til både at lave linieskift
> og flytte skrivehovedet tilbage.

Bare lige for at være pedant:

'\n' = 0x0A = 10 = Linefeed
'\r' = 0x0D = 13 = Carriage Return
Dos og Windows bruger '\r\n' til at adskille linjer.

--
Med venlig hilsen
Christian Laursen

CHRistian (11-02-2001)
Kommentar
Fra : CHRistian


Dato : 11-02-01 19:11

pope@home.terminal.dk (Povl H. Pedersen) wrote:

>Lige en definition:
>'\n' = 0x0A = 10 = Newline
>'\r' = 0x0D = 13 = Linefeed

Du mener vel
\n = 10 = LF
\r = 13 = CR

>'\n\r' er to tegn, og bruges af DOS PC'ere fordi man skulle sende

Mener nu, det er omvendt; CRLF.

>begge dele til printeren for at få den til både at lave linieskift
>og flytte skrivehovedet tilbage.

Jeg kan godt se dit eks. med, at der på PC bruges CRLF mht. brugte
bytes, men hvordan hænger det så sammen med, at hvis man fx skriver
echo ("Linje1\nLinje2")
så bliver outputtet stadig på PC/win til
Linje1
Linje2
med ét tegn til at angive nylinje.

Med
echo ("Linje1\r\nLinje2")
så bliver outputtet (det synlige) åbenbart det sammen, mens der godt nok
faktisk er brugt én byte mere.

--
123456789 123456789 123456789 123456789 123456789 123456789 123456789 12
Tilfældig-Signatur-prog-test,4: http://members.nbci.com/chrzzz/soft/s2f/
(F)Agent-newbie / Usenetnewbie-prøven / Styr på OEs 'Sv' -> 'Re'...
http://www.whitehat.dk/cbh/

Henrik Jensen (11-02-2001)
Kommentar
Fra : Henrik Jensen


Dato : 11-02-01 19:11

> >Sagen er at linieskift-typen er en '\n' og den forstås fint af Unix som
et
> >linieskift, mens Windows benytter '\n\r' (newline + carriage return).
>
> Hmm, jeg synes da fint, at min win95 forstår et \n som linjeskift?
>

Det gør den sikkert også hvis du sætter det explicit. Problemet opstår først
i forb. med email med mail, hvor newline-tegnet bliver implicit - det er
ihvert fald det jeg er kommet frem til.

--
/Henrik
- Stay in the rhythm
- http://www.netwerk.dk
- http://www.neotek.as






CHRistian (11-02-2001)
Kommentar
Fra : CHRistian


Dato : 11-02-01 19:15

"Henrik Jensen" <hj@netwerk.dk> wrote:

>i forb. med email med mail, hvor newline-tegnet bliver implicit - det er
>ihvert fald det jeg er kommet frem til.

Implicit nylinje? Hvordan det?

--
123456789 123456789 123456789 123456789 123456789 123456789 123456789 12
Tilfældig-Signatur-prog-test,4: http://members.nbci.com/chrzzz/soft/s2f/
(F)Agent-newbie / Usenetnewbie-prøven / Styr på OEs 'Sv' -> 'Re'...
http://www.whitehat.dk/cbh/

Henrik Jensen (11-02-2001)
Kommentar
Fra : Henrik Jensen


Dato : 11-02-01 20:02

> >i forb. med email med mail, hvor newline-tegnet bliver implicit - det er
> >ihvert fald det jeg er kommet frem til.
>
> Implicit nylinje? Hvordan det?
>

Jo, altså, hvis man nu skriver body´en til en email ind i et html-textarea,
laver man jo nogle linieskift hvis man vil have lidt ekstra luft mellem
nogle af linierne. Herved kommer naturligvis et linieskift - som jeg kalder
implicit, fordi du ikke specifikt _skriver_ '\n' - men overlader det til
OS´et at skille linierne ad.
Hvis du sammensætter en mail-body af flere linier og _i _ selve scriptet
adskiller disse med '\n' er det explicit - netop fordi du specifikt
indtaster det.

/Henrik



CHRistian (11-02-2001)
Kommentar
Fra : CHRistian


Dato : 11-02-01 20:57

"Henrik Jensen" <hj@netwerk.dk> wrote:

>Hvis du sammensætter en mail-body af flere linier og _i _ selve scriptet
>adskiller disse med '\n' er det explicit - netop fordi du specifikt
>indtaster det.

Ok.

Prøvede lige for sjov i notepad (Win)[1] og QBASIC (DOS)[2] for at se,
hvordan de tolkede hhv. LF og CR -- altså ikke CRLF:

WIN-CR: Ny linje, start helt t.v
WIN-LF: Ny linje, start helt t.v
DOS-CR: Ny linje, start helt t.v
DOS-LD: Ny linje, start helt t.v

[1] ALT+ASCII
[2] PRINT CHR$(ASCII)

--
Test din viden om usenet...
http://www.whitehat.dk/cbh/ng/

Christian Schmidt (11-02-2001)
Kommentar
Fra : Christian Schmidt


Dato : 11-02-01 23:17

CHRistian wrote:
>
> Prøvede lige for sjov i notepad (Win)[1] og QBASIC (DOS)[2] for at se,
> hvordan de tolkede hhv. LF og CR -- altså ikke CRLF:
>
> WIN-CR: Ny linje, start helt t.v
> WIN-LF: Ny linje, start helt t.v
> DOS-CR: Ny linje, start helt t.v
> DOS-LD: Ny linje, start helt t.v

I min Notepad (som følger med Windows 2000) bliver et enkeltstående LF
eller CR vist som en lille firkant, og der fortsættes ikke på en ny
linie.


Christian

CHRistian (11-02-2001)
Kommentar
Fra : CHRistian


Dato : 11-02-01 23:22

Christian Schmidt <christian@schmidt.net> wrote:

>I min Notepad (som følger med Windows 2000) bliver et enkeltstående LF
>eller CR vist som en lille firkant, og der fortsættes ikke på en ny
>linie.

Hmm, gad vide, hvad der så sker, når en mail ses hhv. i et
unix-mailklient og en win-emil-klient, hvis man har brugt hhv. CRLF og
LF til nylinje. Jeg mener, nu er det da ved at være lidt forvirrende
mht., hvad man bør bruge, hvis man vil poste en mail til en bruger.

Altså: Når nylinje skal laves, skal LF (\n) eller CRLF (\r\n) så bruges
til at angive dette - anyone?

--
Test din viden om usenet...
http://www.whitehat.dk/cbh/ng/

Peter Brodersen (12-02-2001)
Kommentar
Fra : Peter Brodersen


Dato : 12-02-01 03:07

On Sun, 11 Feb 2001 23:22:26 +0100, CHRistian <nospam@direkte.org>
wrote:

>Altså: Når nylinje skal laves, skal LF (\n) eller CRLF (\r\n) så bruges
>til at angive dette - anyone?

http://822.r.trc.dk/


--
- Pede
Professionel nørd

CHRistian (12-02-2001)
Kommentar
Fra : CHRistian


Dato : 12-02-01 19:19

Peter Brodersen <professionel@nerd.dk> wrote:

>>Altså: Når nylinje skal laves, skal LF (\n) eller CRLF (\r\n) så bruges
>>til at angive dette - anyone?
>http://822.r.trc.dk/

Synes nu ikke rigtigt, jeg kunne finde noget i den RFC, der _direkte_
sagde, at det burde være det ene eller andet. Hvilket afsnit?

Men under alle omstændigheder, så er CRLF altså det, man skal bruge -
også i body'erne'?

--
Test din viden om usenet...
http://www.whitehat.dk/cbh/ng/

Andreas Kleist Svend~ (11-02-2001)
Kommentar
Fra : Andreas Kleist Svend~


Dato : 11-02-01 13:10

"Henrik Jensen" <hj@netwerk.dk> udtrykte:

>Her har jeg ikke været før - hvor længe har denne ng eksisteret?

Siden 29/1-01.

--
mvh Andreas Kleist Svendsen

WAP/WML/PHP Tutorials
http://www.nau.dk/

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408946
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste