PHP: создания iCal, как создать новую строку в описании

Я использую следующее, чтобы создать приглашение календаря для Outlook для php-скрипта. Однако \ n не дает мне новой строки в Outlook. Есть ли способ сделать это? Кажется глупым, если вы не можете!

function addToCalendar($calEmail, $calSubject, $calDesc) { $calEmail = 'freelance@skinzy.org'; $description = $calDesc; $message="BEGIN:VCALENDAR VERSION:2.0 CALSCALE:GREGORIAN METHOD:REQUEST BEGIN:VEVENT DTSTART:20110718T121000Z DTEND:20110718T131000Z DTSTAMP:20110525T075116Z ORGANIZER;CN=TOMS TEST:mailto:system@skinzy.org UID:12345678 ATTENDEE;PARTSTAT=NEEDS-ACTION;RSVP= TRUE;CN=Yup:mailto:sample@test.com DESCRIPTION New \n Line LOCATION: I AM THE LOCATION SEQUENCE:0 STATUS:CONFIRMED SUMMARY: TEST SUMMARY TRANSP:OPAQUE END:VEVENT END:VCALENDAR"; $headers = "From: From Name <From Mail>\n"; $headers .= "MIME-Version: 1.0\n"; $headers .= "Content-Type: text/calendar; method=REQUEST;\n"; $headers .= ' charset="UTF-8"'; $headers .= "\n"; $headers .= "Content-Transfer-Encoding: 7bit"; $subject = "Meeting Subject"; $subject = html_entity_decode($calSubject, ENT_QUOTES, 'UTF-8'); if(mail($calEmail, $calSubject, $message, $headers)) { echo "sent"; }else { echo "error"; } } 

Это DESCRIPTION New \n Line меня проблемы.

Любая помощь будет оценена

Том

Solutions Collecting From Web of "PHP: создания iCal, как создать новую строку в описании"

Вы должны заменить \ r \ n \ n:

 $description = str_replace("\r\n", "\\n", $description); 

См. Также Кодирование новых строк в файлах iCal

В Windows вы создаете новую строку с помощью \r\n .

Чтобы подробнее разобраться:

\r в ASCII – это CR стоящий для «Возврат каретки»
\n в ASCII есть LF стоящий для «Line Feed»

Для Windows требуется сочетание обоих, в то время как Linux-системы просто используют \n .

На странице новой страницы Википедии есть тонны информации (возможно, более того, о которой вам было бы интересно узнать).

Вы можете использовать =0D=0A для новой строки с соответствующей кодировкой:

 DESCRIPTION;ENCODING=QUOTED-PRINTABLE:This is the first line.=0D=0AThe Second line.=0D=0AThe third line. 

или альтернативный подход (с использованием base64):

 DESCRIPTION;FMTTYPE=text/html;ENCODING=BASE64:PHA+Tm9ybWFsIDAgZmFsc2UgZmFsc2UgZmFsc2UgTWljcm9zb2Z0SW50ZXJuZXRFeHBsb3JlcjQ8L3A+DQo8YnIgY2xhc3M9ImNsZWFyIiAvPg==