我正在使用PHP动态创建一个ICS文件,除了一个障碍之外“主要”工作:
在ICS文件的DESCRIPTION区域中,我想连接几个数据库字段并将它们分成各自的段落,这样当用户打开日历条目时,它们并不是全部连接成一个字符串。
我的问题是,如果我尝试使用新行字符连接这些字段,则“\ n”不会显示为DESCRIPTION内容的一部分。我打开了一个有效的ICS文件来完成这个任务,文件显示:
说明:1。单击此链接以加入网络研讨会:\ n \ n https://www1.site.com/join/444/444444 \ n \ n \ n2。选择以下音频选项之一:\ n \ n
“\ n”是文件内容的一部分。但是,如果我尝试生成它,它会将\ n视为不是内容,而是ICS行的结尾:
说明:第1行
LINE2
因此ICS无法读取且无效。
我尝试了很多组合,但似乎无法实现这一点。似乎应该很简单,但事实并非如此。有什么想法吗?
答案 0 :(得分:3)
icalendar DESCRIPTION字段使用两个单独的字符,'\'后跟'n'表示换行符。如果您正在使用这些字符编写PHP string literal,则可以使用带单引号的字符串,只需编写\n
,或使用双引号并转义反斜杠,以便\n
不是'变成换行符。例如:
$description = 'This is a description\nwith a newline';
// Or
$description = "This is a description\\nwith a newline";
你最终会如何做到这一点取决于我们没见过的源代码。