1

1 つの ics ファイルに複数のイベントを追加した後、特定のコードを使用して 1 つの ics ファイルで複数のイベントを更新しました。しかし、うまくいきません。イベントは更新されません。どんな体でも助けてください。私のコードは次のとおりです。

$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;

SEQUENCE 番号も変更しましたが、機能しません。

4

1 に答える 1

0

各イベントで変更されるプロパティは何ですか?

UID プロパティは、各イベントの DTSTART に基づいています。したがって、イベントの開始を変更すると、UID が変更されます。イベントの更新時に UID を変更してはなりません。これは、イベントのライフサイクル全体で一定である必要がある 1 つのことです。

gmdate('Ymd') が正確に何をするのかわかりませんが、DTSTAMP は YYYYMMDDTHHMMSSZ 形式であると想定されています。

次に、コンテンツ タイプ ヘッダーに METHOD=REQUEST パラメータがありませんが、それが更新の失敗の原因になっているとは思いません。

于 2013-11-14T09:35:31.467 に答える