2012-01-13 196 views
4

我使用以下内容为php脚本的outlook创建日历邀请。然而\ n并没有给我一个新的观点。有没有办法做到这一点?如果你不能的话,看起来很愚蠢!PHP:iCal创作,如何在描述中创建新行

function addToCalendar($calEmail, $calSubject, $calDesc) 
    { 

$calEmail = '[email protected]'; 
$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:[email protected] 
UID:12345678 
ATTENDEE;PARTSTAT=NEEDS-ACTION;RSVP= TRUE;CN=Yup:mailto:[email protected] 
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部分我有问题。

任何帮助,将不胜感激

汤姆

回答

1

在Windows上,创建使用\r\n一个新行。

做进一步的细节:

在ASCII \rCR代表“回车”
在ASCII \nLF代表“换行”

Windows需要而LINUX的组合系统只需使用\n

Wikipedia's Newline page有大量的信息(可能更多的是你有兴趣知道)。

+0

嘿,非常感谢。我不知道。 Outlook仍然不会将其视为新行,尽管:( – TMB87 2012-01-13 19:18:51

0

可以使用=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== 
相关问题