如何使用PHP为给定的日期范围和时间生成.ics文件

如何使用PHP为给定的日期范围和时间生成.ics文件,php,icalendar,Php,Icalendar,我试图找到一种有效的方法,根据给定的日期范围(开始日期-结束日期)和提醒时间,使用PHP生成一个可下载的“.ics”文件 有谁能给我提供一个创建此功能的PHP代码示例。 注意:原来的博客帖子不见了;通过arhcive.org链接保存 复制并粘贴上述链接的信息: <?php class ICS { var $data; var $name; function ICS($start,$end,$name,$description,$location) {

我试图找到一种有效的方法,根据给定的日期范围(开始日期-结束日期)和提醒时间,使用PHP生成一个可下载的“.ics”文件

有谁能给我提供一个创建此功能的PHP代码示例。

注意:原来的博客帖子不见了;通过arhcive.org链接保存


复制并粘贴上述链接的信息:

<?php
class ICS {
    var $data;
    var $name;
    function ICS($start,$end,$name,$description,$location) {
        $this->name = $name;
        $this->data = "BEGIN:VCALENDAR\nVERSION:2.0\nMETHOD:PUBLISH\nBEGIN:VEVENT\nDTSTART:".date("Ymd\THis\Z",strtotime($start))."\nDTEND:".date("Ymd\THis\Z",strtotime($end))."\nLOCATION:".$location."\nTRANSP: OPAQUE\nSEQUENCE:0\nUID:\nDTSTAMP:".date("Ymd\THis\Z")."\nSUMMARY:".$name."\nDESCRIPTION:".$description."\nPRIORITY:1\nCLASS:PUBLIC\nBEGIN:VALARM\nTRIGGER:-PT10080M\nACTION:DISPLAY\nDESCRIPTION:Reminder\nEND:VALARM\nEND:VEVENT\nEND:VCALENDAR\n";
    }
    function save() {
        file_put_contents($this->name.".ics",$this->data);
    }
    function show() {
        header("Content-type:text/calendar");
        header('Content-Disposition: attachment; filename="'.$this->name.'.ics"');
        Header('Content-Length: '.strlen($this->data));
        Header('Connection: close');
        echo $this->data;
    }
}
?>

将ICS文件保存到当前工作目录中的服务器上

<?php
$event = new ICS("2009-11-06 09:00","2009-11-06 21:00","Test Event","This is an event made by Jamie Bicknell","GU1 1AA");
$event->save();
?>


无法使用此链接访问该页面:谁是该代码的作者,在哪些许可条款下可用?你链接的网站已经不工作了。对我来说,该网站工作得很完美,另一方面,这是作者问他的。很抱歉,重新发布了一篇旧文章,但我看不出该部分如何描述为“将ICS文件输出到浏览器,并给用户打开或保存的选项”,允许用户打开或保存。使用其他未维护的资源不是一个好的解决方案…欢迎使用SO,仅查找教程或代码之类的问题而不显示自己的努力(例如,您当前的实现是什么,为什么不合适)通常会被视为脱离主题,并将关闭然后删除。
<?php
$event = new ICS("2009-11-06 09:00","2009-11-06 21:00","Test Event","This is an event made by Jamie Bicknell","GU1 1AA");
$event->save();
?>