2012-10-05 3 views
5

Ich versuche eine effektive Methode zu finden, um eine downloadbare ".ics" Datei mit PHP zu erstellen, basierend auf einem bestimmten Datumsbereich (Startdatum - Enddatum)) und Erinnerungszeit.Wie generiert man .ics Datei mit PHP für einen bestimmten Zeitraum und Zeit

Könnte jemand mir einen Beispiel-PHP-Code zur Verfügung stellen, um diese Funktion zu erstellen.

+0

Willkommen bei SO, Fragen, die nur nach einem Tutorial oder Code suchen, ohne eigene Anstrengungen zu zeigen (z. Was ist deine aktuelle Implementierung, warum passt sie nicht?) werden normalerweise als nicht-themenorientiert angesehen und werden geschlossen und dann gelöscht. – hakre

Antwort

23

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

Hinweis: ursprüngliche Blog-Post ist weg; Erhaltung mit arhcive.org Link.


Kopieren und die Informationen über den obigen Link einfügen:

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

Ausgabe der ICS-Datei in den Browser und gibt dem Anwender die Option

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

Speicher, um das zu öffnen oder zu speichern ICS-Datei auf dem Server im aktuellen Arbeitsverzeichnis

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

Zugriff auf die Seite über diesen Link nicht möglich: – thoyyu

+0

Wer ist der Autor des Codes und unter welchen Lizenzbedingungen ist er verfügbar? Die verlinkte Website funktioniert nicht mehr. – hakre

+0

Für mich funktioniert die Seite perfekt, auf der anderen Seite fragt das der Autor http://www.twitter.com/jamiebicknell. – m4t1t0

Verwandte Themen