任何关于PHP的Google搜索都会显示phpicalendar以及如何解析或读取IN文件 . 我只想写一个PHP文件,从我的数据库中提取事件并以ical格式写出来 .
我的问题是我找不到任何可以回答两个问题的地方:
-
什么是确切的格式,包括 Headers ,文件格式,页脚等?换句话说,文件必须具有什么,确切地说,才能被Google日历等正确读入?
-
如果我使用.php扩展名构建此文件,如何将其作为ical发布?我是否必须写一个新的.ics文件?或者Google Calendar等会将.php文件读为ical,只要内容格式正确吗? (就像一个style.css.php文件将被读取为CSS文件,如果内容实际上是CSS等)
任何帮助你们都可以给予或指出我将不胜感激!
7 回答
确切格式:http://www.ietf.org/rfc/rfc2445.txt
根据规范,它必须以.ics结尾
编辑:实际上我不确定 - 第6186行给出了.ics命名格式的示例,但它也声明您可以使用url参数 . 只要MIME类型正确,我认为这不重要 .
编辑:来自维基百科的示例:http://en.wikipedia.org/wiki/ICalendar
在服务器上配置MIME类型 .
如果Google日历不需要
*.ics
-extension(这将需要在服务器中进行一些URL重写),这应该非常简单 .这基本上只需要让客户认为您正在提供iCalendar文件,即使可能存在一些与缓存,文本编码等有关的问题 . 但是你可以开始尝试这个简单的代码 .
除了Stefan Gehrig的回答和Dave None的答案(以及mmmshuddup的回复)之外,还有个人经历的记录:
当我在http://severinghaus.org/projects/icv/使用ICS验证器时,我在使用\ n和PHP_EOL时遇到了验证问题
我知道我必须使用\ r \ n才能使其正确验证,所以这是我的解决方案:
这阻止了我的解析错误并使我的ICS文件正确验证 .
http://www.kanzaki.com/docs/ical/具有稍微更易读的旧规范版本 . 它有助于作为一个起点 - 许多事情仍然是相同的 .
同样在my site,我有
一些有用资源列表(见右下角右侧)
ical Spec RFC 5545
ical测试资源
Some notes记录了我在过去几年与
.ics
一起工作的旅程 . 特别是,您可能会发现repeating events 'cheatsheet'非常有用 ..ics
需要小心处理的区域:'all day'事件
个日期类型(时区,UTC或本地'floating') - nb以了解区别
重复规则的互操作性
有一个优秀的eluceo/ical软件包,可以让您轻松创建ics文件 .
以下是docs的示例用法:
也许有点晚了,但这里是实际规范的链接 . http://tools.ietf.org/html/rfc5545 1
确保你格式化这样的字符串或它不会工作