protected function contentline($line) { $contentline = array('name' => '', 'value' => '', 'params' => array()); if (preg_match('/([^":]*(?:"[^"]*"[^":]*)*):(.*)/', $line, $parts)) { $params = explode(';', $parts[1]); $contentline['name'] = array_shift($params); $contentline['value'] = trim(ICalendar::ical_unescape_text($parts[2])); $contentline['params'] = array(); foreach ($params as $param) { preg_match("/(.*?)=(.*)/", $param, $param_bits); $contentline['params'][$param_bits[1]] = str_replace("\"", "", $param_bits[2]); } } else { Kurogo::log(LOG_WARNING, "Found an invalid ICS line: {$line}", 'data'); } return $contentline; }
protected function contentline($line) { $contentline = array( 'name'=>'', 'value'=>'', 'params'=>array() ); if (preg_match('/(.*?)(?!<\\\):(.*)/', $line, $parts)) { $params = explode(';', $parts[1]); $contentline['name'] = array_shift($params); $contentline['value'] = trim(ICalendar::ical_unescape_text($parts[2])); $contentline['params'] = array(); foreach ($params as $param) { preg_match("/(.*?)=(.*)/", $param, $param_bits); $contentline['params'][$param_bits[1]] = str_replace("\"", "", $param_bits[2]); } } else { error_log("Found a line $line that may not be valid"); } return $contentline; }