Php 运行.ics脚本时出现错误消息?
当我运行以下代码并在ical中打开时,我收到一条消息“Calendar无法读取此日历文件。您的日历中未添加任何事件”。您知道我哪里出错了吗Php 运行.ics脚本时出现错误消息?,php,mysql,icalendar,Php,Mysql,Icalendar,当我运行以下代码并在ical中打开时,我收到一条消息“Calendar无法读取此日历文件。您的日历中未添加任何事件”。您知道我哪里出错了吗 require_once('calendar.php'); $start = date('Ymd', $row['CourseStartDate']) . 'T' .date('His', $row['CourseStartDate']) . 'z'; $end = date('Ymd', $row['CourseEndDate']) . 'T' .date
require_once('calendar.php');
$start = date('Ymd', $row['CourseStartDate']) . 'T' .date('His', $row['CourseStartDate']) . 'z';
$end = date('Ymd', $row['CourseEndDate']) . 'T' .date('His', $row['CourseEndDate']) . 'z';
header("content-type:text/calendar;charset=utf-8");
header("content-disposition:inline;filename=bookings.ics");
echo "BEGIN:VCALENDAR\n";
echo "VERSION:2.0\n";
echo "METHOD:REQUEST\n";
while($row = mysql_fetch_assoc($result)){
echo "BEGIN:VEVENT\n";
echo "UID:".date('Ymd') . 'T' .date('His').rand()."firstaid4life.com";
echo "DTSTAMP:".date('Ymd').'T'.date('His')."/n";
echo "DTSTART:{$start}\n";
echo "DTEND:{$end}\n";
echo "SUMMARY:{$row['CourseTitle']}\n";
echo "ATTENDEES:{$row['Attendees']}\n";
echo "END:VEVENT\n";
}
echo "END: VCALENDAR\n";
谢谢。根据,行之间应该用CRLF分隔,因此您应该使用\r\n
进行换行
还要注意的是
echo "UID:".date('Ymd') . 'T' .date('His').rand()."firstaid4life.com";
echo "DTSTAMP:".date('Ymd').'T'.date('His')."/n";
完全没有换行符/n
不是换行符,\n
是正确的。您的代码应至少为(可能将所有\n
s替换为\r\n
s)
显然,生成的文件格式不正确。你能提供上面脚本的输出吗?因为我们不知道数据库的内容,也不知道查询,所以很难找到错误。
echo "UID:".date('Ymd') . 'T' .date('His').rand()."firstaid4life.com\n";
echo "DTSTAMP:".date('Ymd').'T'.date('His')."\n";