php - 如何在 PHP 中创建 iCal ics 源

标签 php mysql icalendar

我正在寻找创建 iCal Feed 的详细信息,以便在 Google 日历等应用程序和人们的手机上使用。

我目前有一个使用 iCalendar 的脚本类,当访问 url 时,会创建一个 ics 文件并将其发送到浏览器:

  function returnCalendar() {
    $filename = $this->getConfig( 'filename' );
    $output   = $this->createCalendar();
    $filesize = strlen( $output );
    if( 'xcal' == $this->format )
      header( 'Content-Type: application/calendar+xml; charset=utf-8' );
    else
      header( 'Content-Type: text/calendar; charset=utf-8' );
    header( 'Content-Length: '.$filesize );
    header( 'Content-Disposition: attachment; filename="'.$filename.'"' );
    header( 'Cache-Control: max-age=10' );
    echo $output;
    die();
  }

我想(正如我之前提到的)创建一个提要(每个用户一个唯一的 URL),并且想知道其中的技术细节?我想我需要一个 cronjob 来为每个人生成一个日历,然后将用户链接到这个 feed,但是如果说只有一个用户正在使用这个 feed,这似乎非常低效。

是否可以将脚本设置为仅在有人请求日历时运行,然后向他们发送适当的日历?

有谁知道 Google 日历等更新的频率、它的工作原理以及我如何测试它?

非常感谢您的宝贵时间,

最佳答案

无需创建cronjob

如果您创建的脚本需要 user_id 和一些 auth_key 并在获取所有详细信息并将其解析到 feed 中之后,它就可以像那样工作

如果这种类型的脚本是服务器端密集型的,则可以选择 Cronjob 然后使用 Cronjob 创建缓存和公共(public)脚本将缓存数据部署到用户 feed-reader

我认为大多数提要都是在查询时创建的,而不是预先创建来缓存结果的

您可以使用此库轻松创建提要
http://ajaxray.com/blog/php-universal-feed-generator-supports-rss-10-rss-20-and-atom

注1:不要忘记连接大多数时候是从用户端发起到服务器端的!因此,大多数情况下服务器不会通知您,但您会向服务器请求通知

关于php - 如何在 PHP 中创建 iCal ics 源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6661288/

相关文章:

php - 如何在不刷新页面的情况下将文本和图像文件数据同时发送到MySQL数据库

php - 如何使用 IMAP 获取完整大小的邮箱?

python - 如何将日期格式化为 BYDAY(iCalendar 规范)

php - Robots.txt 和谷歌日历

php - 真正的转义字符串和 mysqli 准备语句冲突

php - MySQL PDO 连接 php

PHP 代码点火器 : insert parent_id automatically to mysql

java - 将 'java.lang.ClassNotFoundException: com.mysql.jdbc.Driver' 添加到构建路径并使用 Class.forName() 注册后如何修复它;

mysql - "!= nor <>"使用子查询选择数据时不起作用

icalendar - iCalendar (.ics) 和 vCalendar (.vcs) 之间的区别