PHP:iCal创作,如何在描述中创建新行
问题描述:
我使用以下内容为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
部分我有问题。
任何帮助,将不胜感激
汤姆
答
,就应该替换\ r \ n与\ N:
$description = str_replace("\r\n", "\\n", $description);
答
在Windows上,创建使用\r\n
一个新行。
做进一步的细节:
在ASCII \r
是CR
代表“回车”
在ASCII \n
是LF
代表“换行”
Windows需要而LINUX的组合系统只需使用\n
。
Wikipedia's Newline page有大量的信息(可能更多的是你有兴趣知道)。
答
可以使用=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==
嘿,非常感谢。我不知道。 Outlook仍然不会将其视为新行,尽管:( – TMB87 2012-01-13 19:18:51