Example #1
0
 /**
  * Parse an iCal rule into a parsed RRULE array, along with EXDATE
  * and RDATE arrays.
  */
 public static function split_rrule($rrule)
 {
     $parts = self::split_multiline_entry($rrule);
     $rrule = array();
     $exceptions = array();
     $additions = array();
     $additions = array();
     foreach ($parts as $part) {
         if (strstr($part, 'RRULE')) {
             $RRULE = str_replace('RRULE:', '', $part);
             $rrule = (array) self::parse_rrule($RRULE);
         } elseif (strstr($part, 'EXDATE')) {
             $EXDATE = str_replace('EXDATE:', '', $part);
             $exceptions = (array) DateiCalParse::parse_exceptions($EXDATE);
             unset($exceptions['DATA']);
         } elseif (strstr($part, 'RDATE')) {
             $RDATE = str_replace('RDATE:', '', $part);
             $additions = (array) DateiCalParse::parse_exceptions($RDATE);
             unset($additions['DATA']);
         }
     }
     return array($rrule, $exceptions, $additions);
 }