如何在ics文件中导出数据?

een

我为单个事件找到了该解决方案:如何使用PHP在给定的日期范围和时间内生成.ics文件,但是我需要在单个文件中导出多个事件。

我不确定在给定的课程中应该更新哪些内容,您能告诉我一些应该更改的方向吗?

福雷斯特79

我真的很讨厌您提供的链接中非常古老的PHP代码,但请尝试以下更新:

<?php
class ICS {
    var $data = "";
    var $name;
    var $start = "BEGIN:VCALENDAR\nVERSION:2.0\nMETHOD:PUBLISH\n";
    var $end = "END:VCALENDAR\n";
    function ICS($name) {
        $this->name = $name;
    }
    function add($start,$end,$name,$description,$location) {
        $this->data .= "BEGIN: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\n";
    }
    function save() {
        file_put_contents($this->name.".ics",$this->getData());
    }
    function show() {
        header("Content-type:text/calendar");
        header('Content-Disposition: attachment; filename="'.$this->name.'.ics"');
        Header('Content-Length: '.strlen($this->getData()));
        Header('Connection: close');
        echo $this->getData();
    }
    function getData() {
        return $this->start . $this->data . $this->end;
    }
}
?>

并像这样使用它:

<?php
$event = new ICS("Test");
$event->add("2009-11-06 09:00","2009-11-06 21:00","Test Event1","This is an event 1","GU1 1AA");
$event->add("2010-11-06 09:00","2010-11-06 21:00","Test Event2","This is an event 2","GU1 1AA");
$event->save(); // $event->show();
?>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章