2012-10-05 29 views
5

Tôi đang cố gắng tìm một phương pháp hiệu quả để tạo tệp ".ics" có thể tải xuống bằng PHP, dựa trên phạm vi ngày nhất định (ngày bắt đầu - ngày kết thúc) và thời gian nhắc nhở.Cách tạo tệp .ics bằng PHP cho một phạm vi ngày và thời gian cụ thể

Có thể bất kỳ ai cung cấp cho tôi mã mẫu PHP để tạo tính năng này không.

+0

Chào mừng bạn đến với SO, các câu hỏi chỉ tìm kiếm thứ gì đó như hướng dẫn hoặc mã mà không hiển thị các nỗ lực của riêng mình (ví dụ: triển khai hiện tại của bạn là gì, tại sao không phù hợp) thường được coi là không có chủ đề và sẽ bị đóng và sau đó bị xóa. – hakre

Trả lời

23

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

Lưu ý: gốc bài viết trên blog đã biến mất; bảo quản bằng liên kết arhcive.org.


Sao chép và dán thông tin của diễn đàn:

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

Output file ICS cho trình duyệt và cung cấp cho người dùng tùy chọn để mở hoặc lưu

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

Save the Tệp ICS lên máy chủ trong thư mục hoạt động hiện tại

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

Không thể truy cập trang bằng liên kết này: – thoyyu

+0

ai là tác giả của mã và theo đó các điều khoản cấp phép có sẵn? Trang web bạn đã liên kết không còn hoạt động nữa. – hakre

+0

Đối với tôi, trang web hoạt động hoàn hảo, mặt khác, tác giả http://www.twitter.com/jamiebicknell hỏi anh ta. – m4t1t0

Các vấn đề liên quan