2
我對PHP有點新鮮。PHP在Google日曆中生成日曆 - 無效網址
我想過濾包含特定字符串的事件的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:[email protected]
END:VEVENT
END:VCALENDAR
我主持腳本在http://mydomain.dyndns.com/mycalendar.php。當我在Google日曆中輸入該網址時(其他日曆 - >按URL添加),我會收到一條消息「[您的網址]不是有效的網址」。
這是由腳本以.php結尾引起的嗎?
我是否需要說服我的服務器(Apache)在http://mydomain.dyndns.com/mycalendar.ics URL調用php腳本?怎麼樣?還有什麼我做錯了嗎?
在URL中的文件擴展名是沒有意義的。 「Content-type」頭是最重要的。你可以將'kittens.jpg'重命名爲'kittens.exe',告訴你的網絡服務器'.exe'文件是image/jpeg,你的瀏覽器會很高興地顯示圖片。 –