0

我有一个 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; ?>

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

4

2 回答 2

1

PHP 的结束标签会吃掉它后面的空格。 如果您想在使用 PHP 输出时保留换行符,您需要执行以下操作之一:

  • 显式输出换行符:

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

    echo <<<END
    BEGIN:VEVENT
    ...
    DTSTART;VALUE=DATE:$date
    END;
    
于 2012-05-29T23:36:02.717 回答
0

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

于 2012-05-29T23:29:55.057 回答