Der Martin: iCalendar Datei

Beitrag lesen

Hi,

Die Daten werden per Header gesendet, d.H. wie ein Download.
Also HTTP?
Dann gehören in für die Header da als Zeilenenden "\r\n" rein.

ja, stimmt - das macht die PHP-Funktion header() aber selbst. Wenn man diese Funktion verwendet, wird mit jedem Aufruf ein HTTP-Header übergeben, und zwar ohne Delimiter.

Wenn als CTE base64 benutzt wird, sollte man nach jeweils 78 Zeichen einen Zeilenumbruch einfügen und der sollte aus CRLF bestehen. Dann hat eine "Zeile" maximal 80 Bytes, nicht zu verwechseln mit "Zeichen". Das sind dann weniger.

Nö. Die base64-Codierung führt dazu, dass die entstehende Textwurst nur noch aus ASCII-Zeichen besteht. Damit sind dann also 78 Zeichen auch genau 78 Bytes, mit CRLF hintendran erhält man 80 Zeichen, respektive 80 Bytes pro Zeile.

Ich habe die rfc5545 noch nicht ganz durchschaut, aber wie ich es verstanden habe, wird auch CRLF als Zeilenende verlangt.

"Ja, aber."
Genau wie bei e-Mail-Headern kann eine lange Zeile jederzeit durch CR/LF unterbrochen werden; man muss dann nur dafür sorgen, dass die Fortsetzungszeile um _genau_ein_ Tab oder Blank eingerückt ist, damit sie als Fortsetzung der vorhergehenden Zeile gilt (siehe RFC 5545 Abschnitt 3.1).

Das sollte dann wahrscheinlich ein doppletes CRLF werden, also "\r\n\r\n"

Nein.

Ciao,
 Martin

--
Die letzten Worte des Helden:
Feigling! Traust dich ja doch nicht!
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(