'; foreach($events as $event) { $size--; $r .= '
'; //$r .= ''.$event['id'].''; $r .= ''.$event['title'].'
'; if($event['description']) $r .= ''.$event['description'].'
'; $r .= ''.date("l, F j", $event['start_date']).' from '.date("h:ia", $event['start_date']).' to '.date("h:ia", $event['end_date']).'
'; $r .= ''; $r .= ''; $r .= 'Where: '.$event['location'].'
'; //$r .= 'Hosted By: '.$event['host'].'
'; //$r .= ''.$event['url'].''; $r .= '

'; if(!$size) break; } $r .= ""; return $r; } function my_xml2array($__url) { $cache_dir = './temp'; $cache_time = 60*60*12; $cache_file = $cache_dir . '/rsscache_' . md5($rss_url); $timedif = @(time() - filemtime($cache_file)); if ($timedif < $cache_time && file_exists($cache_file)) { $contents = unserialize(join('', file($cache_file))); } else { $contents = file_get_contents($__url); $serialized = serialize($contents); if ($f = @fopen($cache_file, 'w')) { fwrite ($f, $serialized, strlen($serialized)); fclose($f); } } $xml_values = array(); $parser = xml_parser_create(''); if(!$parser) return false; xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, 'UTF-8'); xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0); xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); xml_parse_into_struct($parser, trim($contents), $xml_values); xml_parser_free($parser); if (!$xml_values) return array(); $xml_array = array(); $last_tag_ar =& $xml_array; $parents = array(); $last_counter_in_tag = array(1=>0); foreach ($xml_values as $data) { switch($data['type']) { case 'open': $last_counter_in_tag[$data['level']+1] = 0; $new_tag = array('name' => $data['tag']); if(isset($data['attributes'])) $new_tag['attributes'] = $data['attributes']; if(isset($data['value']) && trim($data['value'])) $new_tag['value'] = trim($data['value']); $last_tag_ar[$last_counter_in_tag[$data['level']]] = $new_tag; $parents[$data['level']] =& $last_tag_ar; $last_tag_ar =& $last_tag_ar[$last_counter_in_tag[$data['level']]++]; break; case 'complete': $new_tag = array('name' => $data['tag']); if(isset($data['attributes'])) $new_tag['attributes'] = $data['attributes']; if(isset($data['value']) && trim($data['value'])) $new_tag['value'] = trim($data['value']); $last_count = count($last_tag_ar)-1; $last_tag_ar[$last_counter_in_tag[$data['level']]++] = $new_tag; break; case 'close': $last_tag_ar =& $parents[$data['level']]; break; default: break; }; } $events = array(); foreach($xml_array[0] as $key => $value) { if(is_int($key)) { $event = array(); foreach($value as $k => $v) { if(is_int($k)) { $event[$v['name']] = $v['value']; } } $events[] = $event; } } return $events; } ?>