Cómo generar .archivo ics usando PHP para un determinado rango de fecha y hora

Estoy tratando de encontrar un método eficaz para generar un descargable «.ics» archivo usando PHP, basado en un determinado rango de fechas (fecha de inicio – fecha de finalización) y la hora del recordatorio.

Podría cualquiera me proporciona un ejemplo de código PHP para crear esta característica.

Bienvenido a ASÍ, las preguntas sólo en busca de algo así como un tutorial o código sin mostrar propios esfuerzos (por ejemplo, ¿cuál es su actual implementación, ¿por qué no es apropiado) se considera normalmente como el off-topic y será cerrado y luego se elimina.

OriginalEl autor thoyyu | 2012-10-05

1 Kommentar

  1. 23

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

    Nota: post del blog original se ha ido; la preservación del con arhcive.org enlace.


    Copiar y pegar la información del enlace de arriba:

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

    Salida de los ICS de archivo en el navegador y dar al usuario la opción de abrir o guardar

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

    Guardar el archivo ICS en el servidor en el directorio de trabajo actual

    <?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();
    ?>
    No puede acceder a la página a través de este enlace:
    quién es el autor de el código y en virtud de la cual los términos de la licencia está disponible? Los sitios web ya no funciona.
    Para mí, el sitio funciona perfecto, por otro lado, este es el autor twitter.com/jamiebicknell preguntarle a él.
    Lo siento por la resurrección de un viejo post, pero no puedo ver cómo la sección descrita como «la Salida de los ICS de archivo en el navegador y dar al usuario la opción de abrir o guardar», permite al usuario abrir o guardar.
    El uso de otros no-mantenido de recursos no es una buena solución…

    OriginalEl autor m4t1t0

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein