PHP: vcal description is empty


PHP: vcal description is empty

我真的需要帮助。我有这个函数:

function sendICal($dtstart,$dtend,$loc,$summary,$from,$to,$subject, $EMAIL, $uid, $decline = 0, $debug = 0) 
{
$now=date('Ymd').'T'.date('His');
$vcal = "BEGIN:VCALENDAR'r'n";
$vcal .= "VERSION:2.0'r'n";
$vcal .= "PRODID:ITAF_IMS_NL'r'n";
$vcal .="CALSCALE:GREGORIAN'r'n";
if($debug){
$aan = ',marko.vasic@itaf.eu';
}
 else {
  for($x = 0; $x < count($EMAIL); $x++){
  $aan .= ','.$to[$x];
}
}
if($decline){
  $vcal .="METHOD:REPLY'n";
  $vcal .="BEGIN:VEVENT'n";
  $vcal .="STATUS:CONFIRMED'n";
  for($x = 0; $x < count($EMAIL); $x++){
  $vcal .= "ATTENDEE;PARTSTAT=DECLINED;CN='"'";ROLE=REQ-PARTICIPANT;RSVP=FALSE:MAILTO:".$EMAIL[$x]."'n";
  }
  $vcal .="X-WR-TIMEZONE:Europe/Brussels'n";
  $vcal .="DTSTAMP:".$now."'n";
  $vcal .="DTSTART;TZID:$dtstart'n";
  $vcal .="DTEND:".$dtend."'n";
  $vcal .="SUMMARY:Declined:".$subject."'n";
  $vcal .="SEQUENCE:1'n";
  $vcal .="X-MICROSOFT-CDO-OWNER-CRITICAL-CHANGE:$now'r'n";
  $vcal .="X-MICROSOFT-CDO-ATTENDEE-CRITICAL-CHANGE:$now'r'n";
  $vcal .="X-MICROSOFT-CDO-APPT-SEQUENCE:1'n";
  $vcal .="X-MICROSOFT-CDO-OWNERAPPTID:-1'n";
  $vcal .="X-MICROSOFT-CDO-ALLDAYEVENT:FALSE'n";
  $vcal .="END:VEVENT'n";
  } else {
  $vcal .= "METHOD:REQUEST'n";
  $vcal .= "BEGIN:VEVENT'n";
  for($x = 0; $x < count($EMAIL); $x++){
  $vcal .= "ATTENDEE;CN='"'";ROLE=REQ-PARTICIPANT;RSVP=FALSE:MAILTO:".$EMAIL[$x]."'n";
  }
  $vcal .="CREATED:".$now."'n";
  $vcal .="X-WR-TIMEZONE:Europe/Brussels'n";
  $vcal .="LAST-MODIFIED:".$now."'n";
  $vcal .= "DTSTAMP:".$now."'n";
  $vcal .= "DTSTART:".$dtstart."'n";
  $vcal .= "DTEND:".$dtend."'n";
  $vcal .= "SUMMARY:".$subject."'n";
  $vcal .= "UID:".$uid."'n";
  if ($loc != "") $vcal .= "LOCATION:".$loc."'n";
  $vcal .= "BEGIN:VALARM'n";
  $vcal .= "TRIGGER:-PT15M'n";
  $vcal .= "ACTION:DISPLAY'n";
  $vcal .= "DESCRIPTION:Reminder:".$summary."'n";
  $vcal .= "END:VALARM'n";
  $vcal .= "END:VEVENT'n";
  } 
 $vcal .= "UID:".$uid."'n";
if ($loc != "") $vcal .= "LOCATION:".$loc."'n";
      $vcal .= "END:VCALENDAR'n";
  $headers = "From: $from'r'nReply-To: $from";
  $headers .= "'r'nMIME-version: 1.0'r'nContent-Type: text/calendar; method=REQUEST; charset='"iso-8859-1'"";
  $headers .= "'r'nContent-Transfer-Encoding: 7bit'r'nX-Mailer: Microsoft Office     Outlook 12.0";
mail(substr($aan,1), $subject, $vcal, $headers);
 }

,它应该发送事件调用。除了描述,它什么都发。它总是将描述字段留空。不管我发什么。我从我作为描述发送的字符串中剥离<br/>,它仍然是发送空白字段。是否有一些错误的标题,我没有看到?有人知道怎么解决这个问题吗?

是文本"提醒"后面的冒号: -冒号是分隔元素名称和值的特殊字符,单个元素不能有多个冒号。你可以用反斜杠转义,它应该是这样的:

DESCRIPTION:Reminder':

可以在一个值中指定多行,用CRLF分隔,然后紧接空格。