2012-10-05 19 views
5

Próbuję znaleźć skuteczną metodę generowania pliku ".ics" do pobrania za pomocą PHP, w oparciu o dany zakres dat (data rozpoczęcia - data zakończenia) i czas przypomnienia.Jak wygenerować plik .ics przy użyciu PHP dla danego zakresu dat i czasu

Czy ktoś może podać mi przykładowy kod PHP, aby utworzyć tę funkcję.

+0

Witaj w SO - pytania, które szukają czegoś na kształt samouczka lub kodu bez pokazywania własnych wysiłków (np. jaka jest twoja obecna implementacja, dlaczego nie pasuje) jest zwykle uważana za nietypową i zostanie zamknięta, a następnie usunięta. – hakre

Odpowiedz

23

http://web.archive.org/web/20120419230026/http://jamiebicknell.tumblr.com/post/413492676/ics-generator-php-class

Uwaga: oryginalny blogu nie ma; zachowanie z linkiem arhcive.org.


Kopiuj i wklej informacje o powyższym linkiem:

<?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; 
    } 
} 
?> 

wyjściowy plik ICS do przeglądarki i daje możliwość otwarcia lub zapisania

<?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->show(); 
?> 

zapisać użytkownikowi Plik ICS na serwerze w bieżącym katalogu roboczym

<?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(); 
?> 
+0

Nie można uzyskać dostępu do strony za pomocą tego linku: – thoyyu

+0

kto jest autorem kodu i pod jakimi warunkami licencji jest on dostępny? Połączona strona nie działa. – hakre

+0

Dla mnie strona działa idealnie, z drugiej strony jest to autor http://www.twitter.com/jamiebicknell go zapytać. – m4t1t0

Powiązane problemy