PHP在Google日历中生成日历 - 无效的网址

时间:2015-10-05 13:47:44

标签: php apache calendar google-calendar-api icalendar

我对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脚本?怎么样?还有别的我做错了吗?

1 个答案:

答案 0 :(得分:0)

好的,这有点令人尴尬......

上面的代码运行得很好,我的错误来源是我从URL中遗漏了“http://”。因此谷歌日历抱怨它不是一个好的URL。 cough 在我的网址中添加“http://”可以创造奇迹:)

我会在这里留下脚本,也许其他人想要一个简单的PHP脚本来过滤现有的iCal文件并将其提供给Google Calendar。