aboutsummaryrefslogtreecommitdiffstats
path: root/functions
diff options
context:
space:
mode:
authorJason Oster <parasytic@users.sourceforge.net>2009-05-27 16:06:58 +0000
committerJason Oster <parasytic@users.sourceforge.net>2009-05-27 16:06:58 +0000
commit90d440d610040e60e11390e5b6bc272a0f0dd4b2 (patch)
tree8e8f04d807739422284f69f93448d675bc34ad60 /functions
parent1dc4188ce211c760549bea8fa4e982f2fb02ca46 (diff)
downloadphpicalendar-90d440d610040e60e11390e5b6bc272a0f0dd4b2.tar.gz
phpicalendar-90d440d610040e60e11390e5b6bc272a0f0dd4b2.tar.bz2
phpicalendar-90d440d610040e60e11390e5b6bc272a0f0dd4b2.zip
Handle attendee/organizer parsing better
Diffstat (limited to 'functions')
-rw-r--r--functions/ical_parser.php27
1 files changed, 20 insertions, 7 deletions
diff --git a/functions/ical_parser.php b/functions/ical_parser.php
index 0aa6f50..9baa247 100644
--- a/functions/ical_parser.php
+++ b/functions/ical_parser.php
@@ -425,15 +425,28 @@ foreach ($cal_filelist as $cal_key=>$filename) {
}
break;
case 'ATTENDEE':
- $attendee[] = array ('name' => ereg_replace(".*;CN=([^;]*).*", "\\1", $field),
- 'email' => str_replace ("mailto:", "", $data),
- 'RSVP' => ereg_replace(".*;RSVP=([^;]*).*", "\\1", $field),
- 'PARTSTAT' => ereg_replace(".*;PARTSTAT=([^;]*).*", "\\1", $field),
- 'ROLE' => ereg_replace(".*;ROLE=([^;]*).*", "\\1", $field));
+ $name = preg_match("/CN=([^;]*)/i", $field, $matches1);
+ $email = str_replace("mailto:", "", $data);
+ $rsvp = preg_match("/RSVP=([^;]*)/i", $field, $matches2);
+ $partstat = preg_match("/PARTSTAT=([^;]*)/i", $field, $matches3);
+ $role = preg_match("/ROLE=([^;]*)/i", $field, $matches4);
+
+ $name = ($name ? $matches1[1] : $email);
+ $rsvp = ($rsvp ? $matches2[1] : '');
+ $partstat = ($partstat ? $matches3[1] : '');
+ $role = ($role ? $matches4[1] : '');
+
+ $attendee[] = array ('name' => stripslashes($name),
+ 'email' => stripslashes($email),
+ 'RSVP' => stripslashes($rsvp),
+ 'PARTSTAT' => stripslashes($partstat),
+ 'ROLE' => stripslashes($role)
+ );
break;
case 'ORGANIZER':
- $field = ereg_replace(".*;CN=([^;]*).*", "\\1", $field);
- $data = str_replace ("mailto:", "", $data);
+ $data = str_replace ("mailto:", "", $data);
+ $field = preg_match("/CN=([^;]*)/i", $field, $matches);
+ $field = ($field ? $matches[1] : $data);
$organizer[] = array ('name' => stripslashes($field), 'email' => stripslashes($data));
break;
case 'LOCATION':

© 2014-2024 Faster IT GmbH | imprint | privacy policy