使用PHP回显值时,vcalendar文件中没有换行符

使用PHP回显值时,vcalendar文件中没有换行符,php,icalendar,vcalendar,vcal,Php,Icalendar,Vcalendar,Vcal,我有一个vcalendar文件。如果我像这样在php标记之间键入它,它将非常完美 ?> BEGIN:VEVENT DTSTART;VALUE=DATE:20110422 DTEND;VALUE=DATE:20120529 DTSTAMP:20120529T124028Z UID:7a6db67f3edff4729956c47ec@calendarlabs.com CREATED:20111213T123901Z DESCRIPTION:Visit http://www.calendar

我有一个vcalendar文件。如果我像这样在php标记之间键入它,它将非常完美

?>


BEGIN:VEVENT
DTSTART;VALUE=DATE:20110422
DTEND;VALUE=DATE:20120529
DTSTAMP:20120529T124028Z
UID:7a6db67f3edff4729956c47ec@calendarlabs.com
CREATED:20111213T123901Z
DESCRIPTION:Visit http://www.calendarlabs.com/holidays/ to know more about New Year's Day and for any other calendar needs.
LAST-MODIFIED:20111213T123901Z
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:New Year's Day
TRANSP:TRANSPARENT
END:VEVENT


 <?php

 echo :
那就不行了。我已尝试添加\n,
所有内容

如果我做了以下事情也不起作用:

   DTSTART;VALUE=DATE:<?php echo $date; ?>
DTSTART;值=日期:

其他人能在这里看到解决方案吗?

您的web服务器可能无法将.ics文件识别为脚本,因此它不会将该文件发送到超文本处理器(php)来处理php标记中的指令。您需要告诉web服务器将其视为php文件。可以在此处找到添加自定义扩展的教程:。

如果您想在使用PHP输出时保留换行符,则需要执行以下操作之一:

  • 显式输出换行符:

    DTSTART;VALUE=DATE:<?php echo $date, PHP_EOL; ?>
    
    DTSTART;值=日期:
    
  • 使用:


    echo如果您使用echo,那么它应该在
    范围内,不是吗?最终输出有什么区别?当我使用php将其回送出来时,没有换行符。仅当我在tags.herdoc语法之外键入它时,可能会保留您遇到问题的字符。文件的扩展名是什么?
    DTSTART;VALUE=DATE:<?php echo $date, PHP_EOL; ?>
    
    echo <<<END
    BEGIN:VEVENT
    ...
    DTSTART;VALUE=DATE:$date
    END;