|Ui'; $patterns[1] = '|(.*)="(.*)"|Ui'; $RetVal = array(); preg_match_all($patterns[0], $OPML, $matches, PREG_SET_ORDER); foreach ((array) $matches as $match) { preg_match_all($patterns[1], $match[1], $smatches, PREG_SET_ORDER); $item = array(); foreach ((array) $smatches as $smatch) { $item[trim($smatch[1])] = $smatch[2]; } $RetVal[] = $item; } return $RetVal; } private function OPMLexplode ($OPML) { $RetVal = array(); $Cats = array(); $Links = array(); $cat = 'Uncategorized'; foreach ((array) $OPML as $Link) { switch ($Link['type']) { case 'category': $cat = $Link['title']; $Cats[] = $cat; break; case 'link': $link['link_category'] = $cat; $link['link_name'] = $Link['text']; $link['link_url'] = $Link['htmlUrl']; $link['link_rss'] = $Link['xmlUrl']; $link['link_updated'] = $Link['updated']; $Links[] = $link; break; } } $RetVal['Categories'] = $Cats; $RetVal['Links'] = $Links; return $RetVal; } }