【发布时间】:2018-04-19 07:07:41
【问题描述】:
我尝试了几种不同的方法,但似乎都无法正常工作。在我的网站上,我有一个可以创建约会的区域(截图如下)。约会描述正确发布到数据库。创建约会后,将通过电子邮件将 .ics 文件发送给为约会设置的任何人。 .ics 文件包含所有行,但换行符不会进入 Outlook 约会,因此它只显示第一行。我已经尝试使用 str_replace ,如下所示,但它似乎不起作用。
编辑:我将 \n 放入了 .ics 文件,但 Outlook 除了第一行之外仍然没有显示任何内容。
添加约会模式的屏幕截图
.ics 文件中的 Outlook 约会屏幕截图
记事本中 .ics 文本的屏幕截图
用于创建 .ics 文件的相关 .php 代码
$appNote = str_replace("\r\n", "\\n", $_POST['appNote']);
$appNote = htmlspecialchars($appNote, ENT_QUOTES);
$ical_content = "BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VTIMEZONE"
.$adtimezone."
END:VTIMEZONE
BEGIN:VEVENT
CREATED:".$createdDate."
DESCRIPTION:".$appNote."
DTEND;TZID=\"".$appTimeZone."\":".$endDateTime."
DTSTAMP:".$createdDate."
DTSTART;TZID=\"".$appTimeZone."\":".$startDateTime."
LAST-MODIFIED:".$createdDate."
LOCATION:".$appLocation."
PRIORITY:5
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:".$appSubject." - ".$clientusername."
".$reminderinfo;
$ical_content = "BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VTIMEZONE"
.$adtimezone."
END:VTIMEZONE
BEGIN:VEVENT
CREATED:".$createdDate."
DESCRIPTION:".$appNote."
DTEND;TZID=\"".$appTimeZone."\":".$endDateTime."
DTSTAMP:".$createdDate."
DTSTART;TZID=\"".$appTimeZone."\":".$startDateTime."
LAST-MODIFIED:".$createdDate."
LOCATION:".$appLocation."
PRIORITY:5
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:".$appSubject." - ".$clientusername."
".$reminderinfo;
【问题讨论】:
-
我编辑了原帖。我得到了 \n 进入 .ics 文件,但它仍然没有加载到 Outlook 中
-
您在记事本中的屏幕截图没有在该位置显示任何
\n字符组合。 -
不是来自原始帖子,但如果您查看我的“编辑”下方的屏幕截图,您可以在该行中看到
\n。仍然无法在 Outlook 应用程序的描述中工作 -
将描述内容包装在 " 中会改变什么吗?您能否从 Outlook 中导出这样的事件并检查它在这种情况下创建的确切格式?