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

时间:2012-05-29 23:06:01

标签: 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.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 :

但是,我把它放在echo语句中就像这样:

 echo "BEGIN:VEVENT"; 

然后它不起作用。我试过添加\ n,一切。

如果我做的事情也不起作用:

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

其他人可以在这看到解决方案吗?

2 个答案:

答案 0 :(得分:1)

PHP's closing tag eats whitespace following it.如果您想在使用PHP输出时保留换行符,则需要执行以下操作之一:

  • 明确输出换行符:

    DTSTART;VALUE=DATE:<?php echo $date, PHP_EOL; ?>
    
  • 使用heredoc syntax

    echo <<<END
    BEGIN:VEVENT
    ...
    DTSTART;VALUE=DATE:$date
    END;
    

答案 1 :(得分:0)

您的Web服务器可能无法将.ics文件识别为脚本,因此它不会将文件发送到超文本处理器(php)来处理php标记内的指令。您需要告诉您的Web服务器将其视为php文件。可在此处找到添加自定义扩展程序的教程:http://creativebriefing.com/custom-file-extensions/