Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 运行.ics脚本时出现错误消息?_Php_Mysql_Icalendar - Fatal编程技术网

Php 运行.ics脚本时出现错误消息?

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

当我运行以下代码并在ical中打开时,我收到一条消息“Calendar无法读取此日历文件。您的日历中未添加任何事件”。您知道我哪里出错了吗

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";