2013-04-24 5 views
0

자습서를 따라 PHP를 사용하여 웹 사이트로 iCal 데이터를 가져 왔습니다. 피드가 피드 유효성 검사기 웹 사이트에 정보를 표시하더라도 배열에 어떤 이유로 든 데이터가 포함되지 않은 것 같습니다. 누구든지 디코더 기능을 살펴볼 수 있습니까? 나는 이것에 대한 간단한 이유가 있다고 생각하지만 나는 초보자이다.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; 
} 
관련 문제