2013-04-24 67 views
0

我按照教程使用PHP將iCal數據導入到我的網站。出於某種原因,即使Feed在Feed驗證器網站中顯示信息,該數組似乎也沒有包含任何數據。任何人都可以看看解碼器功能嗎?我猜這有一個簡單的原因,但我是一個新手。在PHP中返回空白數組的iCal解碼器函數

public function iCalDecoder($file) { 
    $ical = file_get_contents('https://www.google.com/calendar/ical/689afn1fkt0cb59kame9bg56mg%40group.calendar.google.com/private-584915c30803f5ad6c548f021e84f836/basic.ics'); 
    preg_match_all('/(BEGIN:VEVENT.*?END:VEVENT)/si', $ical, $result, PREG_PATTERN_ORDER); 
    for ($i = 0; $i < count($result[0]); $i++) { 
     $tmpbyline = explode("rn", $result[0][$i]); 

     foreach ($tmpbyline as $item) { 
     $tmpholderarray = explode(":",$item); 
     if (count($tmpholderarray) >1) { 
      $majorarray[$tmpholderarray[0]] = $tmpholderarray[1]; 
     } 
     } 

     if (preg_match('/DESCRIPTION:(.*)END:VEVENT/si', $result[0][$i], $regs)) { 
     $majorarray['DESCRIPTION'] = str_replace(" ", " ", str_replace("rn", "", $regs[1])); 
     } 
     $icalarray[] = $majorarray; 
     unset($majorarray); 

    } 
    return $icalarray; 

} 

回答

0

發現,實際工作的另一個功能。感謝您的期待,我希望這將有助於未來的人!

function icsToArray($paramUrl) { 
    $icsFile = file_get_contents($paramUrl); 

    $icsData = explode("BEGIN:", $icsFile); 

    foreach($icsData as $key => $value) { 
     $icsDatesMeta[$key] = explode("\n", $value); 
    } 

    foreach($icsDatesMeta as $key => $value) { 
     foreach($value as $subKey => $subValue) { 
     if ($subValue != "") { 
      if ($key != 0 && $subKey == 0) { 
      $icsDates[$key]["BEGIN"] = $subValue; 
      } else { 
      $subValueArr = explode(":", $subValue, 2); 
      $icsDates[$key][$subValueArr[0]] = $subValueArr[1]; 
      } 
     } 
     } 
    } 

    return $icsDates; 
}