2015-02-13 5 views
1

Отправка iCalevent приглашение используя php. Все отображается правильно, а кнопка RVSP отображается правильно. Но description - cutting down после first line. Например, если мое описание:Outlook iCal собрание приглашение описание выпуск

The problem occurs when I have multiple lines in the description. 
If it contains the text for example I will only get in my outlook calendar 
description. The part after disappears. 

Только первая линия показывает, как:

The problem occurs when I have multiple lines in the description. 

Если кто-то помочь мне. Я уже завернул строки, но после первой строки он не будет отображаться. Вот фрагмент кода.

function ical_split($preamble, $value) { 
    $value = trim($value); 
    $value = strip_tags($value); 
    $value = preg_replace('/\n+/', ' ', $value); 
    $value = preg_replace('/\s{2,}/', ' ', $value); 
    $preamble_len = strlen($preamble); 
    $lines = array(); 
    while (strlen($value)>(74-$preamble_len)) { 
     $space = (74-$preamble_len); 
     $mbcc = $space; 
     while ($mbcc) { 
      $line = mb_substr($value, 0, $mbcc); 
      $oct = strlen($line); 
      if ($oct > $space) { 
       $mbcc -= $oct-$space; 
      } 
      else { 
       $lines[] = $line; 
       $preamble_len = 1; // Still take the tab into account 
       $value = mb_substr($value, $mbcc); 
       break; 
      } 
     } 
    } 
    if (!empty($value)) { 
     $lines[] = $value; 
    } 
    return join($lines, "\\n\\t"); 
} 

И я назвал его следующим образом:

$meeting_notes="The problem occurs when I have multiple lines in the description. If it contains the text for example I will only get in my outlook calendar description. The part after disappears." 
ical_split('DESCRIPTION:', $meeting_notes) 

Здесь подробно прикрепленного файла мика.

BEGIN:VCALENDAR 
VERSION:2.0 
PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN 
CALSCALE:GREGORIAN 
METHOD:REQUEST 
BEGIN:VEVENT 
DTSTART:20150227T163000Z 
DTEND:20150227T173000Z 
DTSTAMP:20150211T094306Z 
ORGANIZER;CN=Charlene Switzer:MAILTO:email_here 
UID:40 
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=name_here;X-NUM-GUESTS=0:MAILTO:email_here 
DESCRIPTION:The problem occurs when I have multiple lines in the description. If it contains the text for example I will only get in my outlook calendar description. The part after disappears. 
LOCATION:asdf asd 
SEQUENCE:0 
STATUS:CONFIRMED 
TRANSP:OPAQUE 
SUMMARY:Meeting 
PRIORITY:5 
CLASS:PUBLIC 
BEGIN:VTIMEZONE 
TZID:Eastern 
END:VTIMEZONE 
END:VEVENT 
END:VCALENDAR 
+1

Я отформатировал ваш вопрос немного - он выглядел так, как будто вы экспериментировали с различными возможностями разметки кода (обратные ссылки, котировки, фрагменты кода, отступы) :-) – chiccodoro

ответ

2

затрачивать на объяснение Дмитрия, вам необходимо обратиться к RFC5545, который определяет формат Анонсы

3.1. Content Lines

Объект Анонсы организован в отдельные строки текста, называемых содержательных линий. Строки контента разделяются разрывом строки, , который является последовательностью CRLF (символ CR, за которым следует символ LF).

Строки текста ДОЛЖНЫ быть длиннее 75 октетов, за исключением линии перерыв. Длинные строки контента ДОЛЖНЫ быть разделены на несколько строк представлений, используя технику «складывания» линии. То есть длинная линия может быть разделена между любыми двумя символами, вставив CRLF , за которым следует одиночный линейный символ пробела (т. Е. SPACE или HTAB).

Итак, вернемся к вашему вопросу, как Дмитрий предполагают, вы должны добавить TAB или ее SPACE после вашего CRLF, но и вы должны убедиться, что ваши линии не больше, чем 75bytes.

+0

Можете ли вы прислать мне какой-либо пример, используя php.? – israr

+0

Я не кодирую в php, возможно, вы могли бы поделиться файлом ical, чтобы узнать, что не так в ouptu – oberron

+0

Я опубликовал деталь файла ics. Пожалуйста, взгляните на это. – israr

0

Убедитесь, что вторая линия начинается с вкладки (0x9) - таким образом линии будут правильно развернуты.

+0

Можете ли вы дать мне некоторый намек на php, чтобы найти 75 октетов и добавить вкладку (0x9)? – israr

+0

Вы уже не завертываете линии? Если вы этого не сделаете, вы должны закодировать разрывы строк - замените их на \ n. –

+0

Кроме того, если у вас есть конкретные вопросы о коде, разместите соответствующие фрагменты кода и четко укажите, в чем проблема. –