当前位置: 首页 > 面试题库 >

如何使用PHP动态发布可被Google日历读取的ical文件?

公孙高轩
2023-03-14
问题内容

任何Google在PHP ical上的搜索都只会显示phpicalendar以及如何解析或读取IN
ical文件。我只想编写一个PHP文件,该文件从数据库中提取事件并以ical格式将其写出。

我的问题是我找不到任何地方可以回答两个问题:

  1. 确切的 文件格式是什么,包括页眉,文件格式,页脚等?换句话说,要由Google日历等正确读取文件,文件必须具有什么内容?
  2. 如果我使用.php扩展名构建此文件,该如何将其发布为ical?是否需要写入新的.ics文件?还是Google日历等会以正确的格式读取.php文件为ical?(如果内容实际上是CSS等,则类似于style.css.php文件将被读取为CSS文件。)

大家可以提供或指向我的任何帮助将不胜感激!!!


问题答案:

如果Google日历不需要*.ics-extension(这需要在服务器中重写一些URL),则这应该非常简单。

$ical = "BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT
UID:" . md5(uniqid(mt_rand(), true)) . "@yourhost.test
DTSTAMP:" . gmdate('Ymd').'T'. gmdate('His') . "Z
DTSTART:19970714T170000Z
DTEND:19970715T035959Z
SUMMARY:Bastille Day Party
END:VEVENT
END:VCALENDAR";

//set correct content-type-header
header('Content-type: text/calendar; charset=utf-8');
header('Content-Disposition: inline; filename=calendar.ics');
echo $ical;
exit;

这实际上是使客户认为您正在提供iCalendar文件所需的全部内容,即使在缓存,文本编码等方面可能存在一些问题。但是您可以开始尝试使用此简单代码。



 类似资料:
  • 我从快速入门开始(https://developers.google.com/google-apps/calendar/quickstart/python)而且效果很好。然后我尝试用这个指南插入事件(https://developers.google.com/google-apps/calendar/create-events)。我将此代码添加到quickstart的代码中,但出现错误。如何查看我

  • 问题内容: 我正在建立一个供人们上传PHP中的.tar(和.tar.gz,.tar.bz2,.zip等)文件的系统。上载文件是可以的,但是在上载档案之后,我想列出档案中包含的文件。 有人可以推荐一个可以读取文件存档的优秀PHP库吗? 我在Pear上找到了File_Archive,但是几年来没有更新。ZipArchive非常适合.zip文件,但是我需要一些可以处理更多文件类型的文件。 更新 我在RH

  • 同一代码以不同的方式生成并设置和(也不同)。我发送一个,邀请为0,取消为1。UID在匹配对之间总是一致的。我错过了什么?

  • 在hotmail中,我发现hotmail不接受以下icalendar,原因是什么?错误:不支持日历消息: 开始: VCALENDAR EcosAgile/V1/ZH 版本: 2.0 方法:请求 开始:VTIMEZONE TZID:W.欧洲标准时间 开始:标准 DTSTART:16010101T030000 TZOFFSETfrom: 0200 TZOFFSETTO: 0100 规则:FREQ=一年

  • 我想读一个从谷歌驱动器的数据集,如截图所示。 我已经为此工作了很多个小时。任何提示或解决方案都将非常感谢。

  • 问题内容: 我需要创建一个遍历子目录中所有文件的循环。您能帮我构造我的代码吗? 问题答案: 将RecursiveDirectoryIterator与RecursiveIteratorIterator结合使用。