【问题标题】:How to download an ics file generated in PHP without using echo / print如何在不使用 echo / print 的情况下下载 PHP 生成的 ics 文件
【发布时间】:2021-03-15 17:21:17
【问题描述】:

我正在 PHP 上创建一些事件,我想下载一个包含这几个事件的 .ics 文件,以便稍后将它们上传到我的例如 Outlook 日历中。最后使用“print”或“echo”可以正常工作,但是在将要使用的平台上,我不允许使用这两个功能。有没有其他方法可以输出这个事件数据?

到目前为止,我所做的是,

            $code = "BEGIN:VCALENDAR\n";
            $code .= "VERSION:2.0\n";
            $code .= "METHOD:PUBLISH\n";
            $code .= "BEGIN:VEVENT\n";
            $code .= "DTSTART:" . date("Ymd\THis\Z", strtotime($start_date_time)) . "\n";
            $code .= "DTEND:" . date("Ymd\THis\Z", strtotime($end_date_time)) . "\n";
            $code .= "LOCATION:" . $location . "\n";
            $code .= "TRANSP: OPAQUE\n";
            $code .= "SEQUENCE:0\n";
            $code .= "UID:\nDTSTAMP:" . date("Ymd\THis\Z") . "\n";
            $code .= "SUMMARY:" . $event['summary'] . "\n";
            $code .= "DESCRIPTION:" . $event['description'] . "\n";
            $code .= "PRIORITY:1\n";
            $code .= "CLASS:PUBLIC\n";
            $code .= "BEGIN:VALARM\n";
            $code .= "TRIGGER:-PT10080M\n";
            $code .= "ACTION:DISPLAY\n";
            $code .= "DESCRIPTION:Reminder\n";
            $code .= "End:VALARM\n";
            $code .= "End:VEVENT\n";
            $code .= "End:VCALENDAR\n";

            header('Content-type:text/calendar');
            header("Content-Description: File Download");
            header('Content-Disposition: attachment; filename="events.ics"');
            header("Content-Type: application/force-download");
            header('Connection: close');
            print $code;
    ```

【问题讨论】:

  • 为什么没有打印或回声?它们是 PHP 函数,如果你有 PHP,你就有这些函数。
  • 这段代码是针对现有项目的,不幸的是我不允许使用 print 或 echo。所以我一直在寻找以其他方式输出数据的方法。

标签: php http-headers icalendar


【解决方案1】:

由于框架构建器正在处理输出,所以我只需将部分 $code 分配给正在输出的变量。

如果将来有人需要这样做,您关于使用打印或回显或下载文件的所有答案都是正确的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-12
    • 1970-01-01
    • 2010-10-18
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多