使用php在单个ics文件(icalendar流)中更新多个事件
在一个ics文件中添加了多个事件之后,我使用了给定的代码来更新一个ics文件中的多个事件。但它不起作用。事件不会更新。任何人都请帮助我。我的代码是:使用php在单个ics文件(icalendar流)中更新多个事件,php,icalendar,Php,Icalendar,在一个ics文件中添加了多个事件之后,我使用了给定的代码来更新一个ics文件中的多个事件。但它不起作用。事件不会更新。任何人都请帮助我。我的代码是: $ical = "BEGIN:VCALENDAR"; $ical .= "\nVERSION:2.0"; $ical .= "\nPRODID:-//hacksw/handcal//NONSGML v1.0//EN"; $ical .= "\nMETHOD:REQUEST"; $ical .= "\nCALSCALE
$ical = "BEGIN:VCALENDAR";
$ical .= "\nVERSION:2.0";
$ical .= "\nPRODID:-//hacksw/handcal//NONSGML v1.0//EN";
$ical .= "\nMETHOD:REQUEST";
$ical .= "\nCALSCALE:GREGORIAN";
$ical .= "\nX-WR-RELCALID:asjh675adashdh";
$ical .= "\nX-WR-CALNAME:My Nov Calendar";
foreach($arr as $newArr){
$ical .= "\nBEGIN:VEVENT";
$ical .= "\nUID:" . md5($newArr['stDate']) . "example.com";
$ical .= "\nSEQUENCE:1";
$ical .= "\nDTSTAMP:" . gmdate('Ymd');
$ical .= "\nORGANIZER:catalog@example.com";
$ical .= "\nDTSTART:".$newArr['stDate'];
$ical .= "\nDTEND:".$newArr['stDate'];
$ical .= "\nSUMMARY:".$newArr['sub'];
$ical .= "\nDESCRIPTION:".$newArr['desc'];
$ical .= "\nCLASS:PUBLIC";
$ical .= "\nSTATUS:CONFIRMED";
$ical .= "\nTRANSP:TRANSPARENT";
$ical .= "\nEND:VEVENT";
}
$ical .= "\nEND:VCALENDAR";
header('Content-type: text/calendar; charset=utf-8');
header('Content-Disposition: inline; filename=my-calendar.ics');
echo $ical;
exit;
我还更改了序列号,但它不起作用。在每个事件中更改了什么属性 UID属性基于每个事件的DTSTART。因此,如果更改事件的开始,UID将更改。更新事件时,UID不得更改。在事件的整个生命周期中,这是一件应该保持不变的事情 不知道gmdate('Ymd')的确切功能,但DTSTAMP应该是yyyymmddthhmmsz格式
然后,在内容类型标头中缺少METHOD=REQUEST参数,但我认为这不会导致更新失败。感谢您的回答,但我使用了一个名为$arr的静态数组,其中的值是静态的,因此每个UID的DTSTART值保持不变。DTSTAMP也是接受YYYYMMDD值,我通过gmdate('Ymd')使用了该值,最后我在代码开头已经使用了METHOD=REQUEST。请查收。所以,请让我知道,我必须做什么来使用PHPDTSTAMP更新单个ics文件中的多个事件必须在zulu中。看见就方法而言,我谈论的是内容类型头,而不是iCalendar属性。看见