如何使用 PHP 动态发布 ical 文件以供 Google 日历读取?

2023-12-06

任何关于 PHP ical 的 Google 搜索都会带来 phpicalendar 以及如何解析或读取 IN ical 文件。我只想编写一个 PHP 文件,从数据库中提取事件并以 ical 格式写出它们。

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

  1. 是什么exact格式,包括页眉、文件格式、页脚等?换句话说,为了能够被 Google 日历等正确读取,该文件到底必须具备什么?
  2. 如果我使用 .php 扩展名构建此文件,如何将其发布为 ical?我必须写入新的 .ics 文件吗?或者,只要内容格式正确,Google 日历等就会读取 .php 文件吗? (就像 style.css.php 文件将被读取为 CSS 文件,如果内容实际上是 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 文件所需的全部内容,即使可能存在一些有关缓存、文本编码等的问题。但您可以开始尝试这个简单的代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 PHP 动态发布 ical 文件以供 Google 日历读取? 的相关文章

  • AWS S3从本地主机批量上传php错误

    我在尝试着批次 散装从本地主机 xampp 上传到我的S3 bucket 它似乎适用于大约 6 个项目 然后我收到一条错误消息 cURL 错误说Failed sending network data from http curl haxx
  • PHP 读取使用 setcookie() 创建的 cookie

    来自manual https www php net setcookie 直到下一次加载 Cookie 应该可见的页面之前 Cookie 才会变得可见 这意味着创建的 cookiesetcookie将无法访问 COOKIE直到下一页加载 有
  • YUI压缩机或类似的PHP?

    我一直在我的测试服务器上使用 yuicompressor jar 来动态最小化已更改的 JavaScript 文件 现在我已经将网站部署到公共服务器上 我注意到服务器的策略禁止使用 exec 或其等效项 因此我不再执行 java 有没有一个
  • PHP 删除字符最后一个实例之前的所有内容

    有没有办法删除某个字符之前的所有内容 包括最后一个实例 我有多个字符串 其中包含 gt e g the gt cat gt sat gt on gt the gt mat welcome gt home 我需要对字符串进行格式化 以便它们变
  • use 语句顺序会影响 PHP 中的功能吗?

    我使用 PHP 的命名空间已经有一段时间了 我认为它对我的编程来说是一个很好的补充 今天早上我想知道一些关于use陈述 我想知道顺序是否use影响我的 PHP 代码的功能 根据 PHP net 使用别名引用外部完全限定名称或导入的能力是命名
  • Laravel 读写连接不同步

    我在 Laravel 5 2 应用程序中使用读写 MySQL 连接设置 mysql gt write gt host gt env DB HOST WRITE localhost read gt host gt env DB HOST RE
  • php隐藏所有错误[重复]

    这个问题在这里已经有答案了 隐藏的最佳做法是什么allPHP 错误 因为我不想向用户显示错误 我尝试过使用 htacess通过输入代码php flag display errors off在那里 但它返回给我一个500 error 还有其他
  • 将 Cloudinary 与 spatie/media-library Laravel 包一起使用

    有人使用 Laravel 包 spatie media library 和 Cloudinary 吗 我认为用 Flysystem 来实现它是微不足道的 我实际上使用 Cloudinary 作为带有 silvanite nova field
  • 彩色 var_dump() 和错误

    我怎样才能将样式设置为var dump 功能和PHP错误样式 如下图所示 目前我有下一个观点var dump with pre var dump pre 没有它将全部在一行中 并且只是纯文本的错误 我搜索了一些 PHP 颜色错误 var d
  • 如何从另一个数组值中过滤数组值并返回新数组? [复制]

    这个问题在这里已经有答案了 我有两个数组 all languages and taken languages 第一个包含所有语言 例如 200 种或其他语言 第二个包含之前选择的语言 从 0 到 200 种 我需要删除所有已采用的语言 ta
  • Yii 未检测到骆驼案例操作

    伊伊正在给我404 Error如果我声明这样的操作 站点控制器 php public function actionRegisterUser 这就是我在main php label gt Register User url gt site
  • 自定义 WordPress 画廊 html 布局

    当使用默认媒体上传器在 WordPress 中创建图像库时 WordPress 将图像包装在一堆 HTML 标记中 如何在生成之前覆盖它 以便我可以输出所需的标记并更改创建图库布局的方式 目前 WordPress 生成的代码如下 div d
  • Laravel,控制器中的 Auth::user()

    Laravel 框架 为什么我无法在 laravel 项目的控制器中使用 Auth user 查看用户是否已登录 Session 是否未连接到控制器 HomeController php public function isauthoriz
  • 将 echo 和 print 合并到一个语句中

    echo 1 print 2 3 返回 214 脚本如何以 14 结尾 当你这样做时 echo 1 print 2 3 PHP 会做 demo http codepad viper 7 com OfrNrs line op fetch ex
  • PHP-如何根据条件配对数组中的项目

    如何将数组中的项目配对 假设我有一个数组Fighters 我想根据他们的情况将他们配对Weights 体重最接近的拳手应作为配对最佳匹配 但如果他们是在同一个团队中 他们不应该配对 团队 1 战斗机A体重为60 战斗机B体重为65 2队 战
  • sqlite3和pdo_sqlite有什么区别

    我正在将我的 Web 应用程序从 MySQL 迁移到 SQLite 数据库 我发现有两个 PHP 扩展用于与 sqlite 通信 php sqlite3 dll and php pdo sqlite dll 什么扩展比较好 或者另一个问题
  • PHP date() 和 strtotime() 返回错误的月份 31 日

    我在用着date and strtotime 函数在下拉列表中显示接下来的 3 个月 PHP代码 echo date m Y strtotime 0 months echo date m Y strtotime 1 months echo
  • 管理产品页面自定义字段显示在购物车和结账中

    我在产品页面的常规设置选项卡上的 WooCommerce 管理中创建了一个自定义字段 以插入几天的制造时间 我想在购物车和结帐页面上每个产品名称上方显示此自定义字段值 这是我的代码 Insert a Custom Admin Field f
  • Google Drive 服务帐户上传的位置

    我正在尝试使用服务帐户将文件上传到我的 Google 云端硬盘 当我部署此代码时 我不希望用户给予授权 我希望他们上传到我的帐户 我通过 PHP 使用它 下面是我到目前为止的情况 这段代码是基于官方文档给出的例子 当我运行 php 脚本时
  • 如何统计订单总价?

    我有这些表 Orders id status user id address id 1 await 1 1 products id name price quantity 1 test1 100 5 2 test2 50 5 order p

随机推荐

  • Selenium IDE 浏览器插件 3.1.0

    我已经安装了新的 Selenium IDE 3 1 0 Firefox 插件 但我找不到任何工具来导出测试 以便从 Python 驱动程序运行它们 我缺少什么 搜索 SO 仅返回旧版 IDE 的建议 但不返回新 Web 浏览器插件的建议 N
  • java中的位运算符仅适用于整数和长整型?

    我在Eclipse中编写了以下代码 byte b 10 some other operations b b Eclipse 希望在按位补码行中将其强制转换为字节 它说 类型不匹配 无法从 int 转换为 byte 我还尝试了其他按位运算和其
  • SIGSEGV 由“kill”生成时是否特殊?

    我知道SIGSEGV当内核使用它来报告内存访问冲突时 不能忽略它 但是如果我安装一个信号处理程序SIGSEGV什么都不做 然后另一个进程使用kill向我发送该信号 其行为是否与我使用 正常 信号相同 例如SIGUSR1 反而 Grijesh
  • “.save”仅在数据库中插入空值

    我正在尝试为一家医院制作 RoR 申请 以便它有患者 医生 办公室等 我遇到的问题是 在患者 注册 时 我无法将新患者保存在数据库中 事实上 尽管我已经检查过属性没问题 只是一个名字和一个个人ID 但一旦执行该方法 数据库中只出现一个带有
  • SAS中有没有一种有效的方法来转置大表

    我有一个 SAS 数据集需要转置 它具有以下形式 id 日期类型 值 我需要把它转换成 id 日期 valueoftype1 valueoftype2 有什么有效的方法可以实现这一点吗 我的数据非常庞大 例如 data one input
  • JQuery设置的文本值回发后丢失

  • Bootstrap Modal 按钮不起作用,仅在 iOS 上

    我的网站上有这个 Bootstrap Modal 它适用于除 Apple iOS 之外的所有内容 有没有人遇到过这个 有任何想法从哪里开始来解决这个问题 我已经尝试使用模拟器进行故障排除 似乎工作正常 只是 Iphone 似乎无法工作 这是
  • 粘贴 (Python) Web 服务器 - 自动重新加载问题

    当我以守护进程模式启动 粘贴 Web 服务器时 它似乎会在源文件的时间戳更新时停止重新加载的能力 这是我启动守护进程的方法 cd project bin paster serve reload daemon development ini
  • COM Interop 和 Outlook - 让 Outlook 可见?

    我正在通过 VB NET 程序自动化 Outlook 根据用户的请求将项目传输到日历和联系人中 一切正常 这不是问题 问题是 当 Outlook 尚未打开时 像这样自动执行 Outlook 会创建一个隐藏实例 我也许可以理解这有什么用处 可
  • MySQL 中前 5 个值的总和

    我有一个 MySQL 表 用于存储赛车锦标赛的结果 因此每一行都包含每个车手在某场比赛中的位置以及其他数据 我想要获得某个车手的前 5 名排名的总和 例如 如果车手的最佳位置是 1 2 2 4 5 我希望 MySQL 返回 14 我想做的是
  • 如何将数据发布到多页谷歌表单?

    我正在尝试通过 POST 自动填写 Google 表单 然而 当我实际将数据发布到其中时 只有第一页的问题实际上被填写了 示例代码 private static void PostToFormTest WebClient client ne
  • 如何在 C# Windows 应用程序中通过计时器控件刷新 Gridview?

    我有一个组合框 在组合框中有多个选项 如 5 秒 10 秒 20 秒等 当我选择任何一个选项时 网格视图会在该特定时间后刷新 以下是在 datagridview 中加载文件的代码 public string Path get set pri
  • 维护滚动位置和回发时的选定控制

    返回另一个基于网络的问题 当控件向服务器发出回发时 页面会刷新 很好 页面也会滚动回顶部并失去所选的控件 如果回发后相关 则根据发生的更改 控件将变得可见或隐藏 即使页面可见性没有任何变化 焦点也会丢失并且当前滚动会重置 在文本字段中输入的
  • 如何立即在网格视图中显示图像的选择

    我有一个问题 我有一个自定义网格视图 其中两个图像 一个是背景图像 第二个是复选标记图像 当我单击网格视图复选标记的一项时 会显示哪个项目显示图像选择 但是当我们想要选择网格视图的第二项 它还会在同一图像上显示复选标记 如下面所附图像所示
  • 在docker容器中安装cygwin时出错:系统找不到指定的路径。 (0x3) error=hcssshim::ImportLayer - 失败 在 Win32 中失败

    我有一个简单的 Dockerfile FROM mcr microsoft com windows 1809 Install chocolatey RUN powershell exe Set ExecutionPolicy Bypass
  • 创建几个相互不兼容的数字类型[重复]

    这个问题在这里已经有答案了 我想创建封装原始数字类型的轻量级类型 struct A long value struct B long value struct C long value 这样我就可以将常用的算术运算应用于每种类型 并获得预期
  • jQGrid - 更改分组标题的背景颜色

    我正在使用 jQGrid 进行分组 每个组标题将具有以下三种可能性之一 Pending Duplicate Not Duplicate 根据该文本 我想更改分组标题的背景颜色 我已经在使用了rowattrjQGrid 的属性来更改网格行的背
  • 使用 NLTK 检查英语语法 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我开始使用NLTK库 我想
  • SpringBeanFacesELResolver 的 javax.faces.el.VariableResolver 类转换异常

    我正在尝试升级到 JSF2 和 Spring 3 0 5 当我部署到 Tomcat 时出现以下错误 任何帮助表示赞赏 SEVERE Exception sending context initialized event to listene
  • 如何使用 PHP 动态发布 ical 文件以供 Google 日历读取?

    任何关于 PHP ical 的 Google 搜索都会带来 phpicalendar 以及如何解析或读取 IN ical 文件 我只想编写一个 PHP 文件 从数据库中提取事件并以 ical 格式写出它们 我的问题是我找不到任何地方可以回答