我对PHP有点新鲜。
我正在尝试过滤包含特定字符串的事件的ICS文件。以下脚本似乎做得很好:
<?php
header('Content-type: text/calendar; charset=utf-8');
header('Content-Disposition: attachment; filename=fodda2009.ics');
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
function icsFilter($paramUrl,$filterstring) {
$icsFile = file_get_contents($paramUrl);
$icsData = explode("BEGIN:", $icsFile);
foreach($icsData as $value) {
if (strpos($value, "VEVENT") === FALSE) {
echo "BEGIN:";
echo $value;
}
else {
if (strpos($value, $filterstring) !== FALSE) {
echo "BEGIN:";
echo $value;
}
}
}
}
?>
<?php echo icsFilter('http://cal.laget.se/ALMTUNAISHOCKEYSKOLA.ics','dda 2009'); ?>
VEVENT
DESCRIPTION:Dummy info
DTEND;TZID=W. Europe Standard Time:20001010T121500
DTSTAMP:20001005T192952Z
DTSTART;TZID=W. Europe Standard Time:20001010T110000
SUMMARY:Dummy event
UID:200abc01010T110000-8918999@stackoverflow.com
END:VEVENT
END:VCALENDAR
我正在http://mydomain.dyndns.com/mycalendar.php托管该脚本。当我将该网址输入Google日历(其他日历 - &gt;按网址添加)时,我收到一条消息“[您的网址]不是有效的网址”。
这是由以.php结尾的脚本引起的吗?
我是否需要说服我的服务器(Apache)在http://mydomain.dyndns.com/mycalendar.ics网址上调用php脚本?怎么样?还有别的我做错了吗?
答案 0 :(得分:0)
好的,这有点令人尴尬......
上面的代码运行得很好,我的错误来源是我从URL中遗漏了“http://”。因此谷歌日历抱怨它不是一个好的URL。 cough 在我的网址中添加“http://”可以创造奇迹:)
我会在这里留下脚本,也许其他人想要一个简单的PHP脚本来过滤现有的iCal文件并将其提供给Google Calendar。