2013-10-23 72 views
3

在過去的四個小時裏,我一直在研究如何解析XML和回聲谷歌日曆飼料。我首先使用this tutorial輕鬆實現了這一點,但遇到了命名空間問題,我可以輕鬆打印出事件的摘要和標題,但無法打印出startTime和endTime,因爲在Feed中他們使用的是<gd:when startTime>等。我發現coreylib並聽到很多關於它簡單的讚譽,但我仍然無法弄清楚如何做到這一點。使用coreylib顯示谷歌日曆飼料事件

難道有人請指出我的方向或給我一個示例代碼來檢索「完整」谷歌飼料(http://www.google.com/calendar/feeds/[email protected]/public/full - 示例飼料)的一些事件。即使它只是檢索了事件的標題和startTime,但這些標題將足以與之合作。

通常我發佈代碼,但在這種情況下,我幾乎沒有任何因爲我卡住那個壞哈哈。 提前謝謝!

回答

4
$email = "yourEmail"; 
$url = "http://www.google.com/calendar/feeds/".$email."/public/full"; 
$xml = file_get_contents($url); 

$feed = simplexml_load_string($xml); 
$ns=$feed->getNameSpaces(true); 

foreach ($feed->entry as $entry) { 
    $when=$entry->children($ns["gd"]); 
    $when_atr=$when->when[0]->attributes(); 
    $start=$when_atr['startTime']; 
    $end=$when_atr['endTime']; 
    $title=$entry->title; 

    echo "<p>".$start." - ".$end." ".$title."</p>"; 
} 

噸噸更多的搜索和發現類似的東西,它工作的很好,如果任何人都需要它的東西類似。的Wooo!

2

基於你上面的內容,我可以修改它來調整樣式。

的PHP

<?php 
$email = "your public calendar address email"; 
$url = "http://www.google.com/calendar/feeds/".$email."/public/full"; 
$xml = file_get_contents($url); 

$feed = simplexml_load_string($xml); 
$ns=$feed->getNameSpaces(true); 

foreach ($feed->entry as $entry) { 
    $when=$entry->children($ns["gd"]); 
    $when_atr=$when->when[0]->attributes(); 

    $title=$entry->title; 
    echo "<div class='eventTitle'>".$title . "</div>"; 

    $start = new DateTime($when_atr['startTime']); 
    echo "<div class='eventTime'>".$start->format('D F jS, g:ia') . " to ";  

    $end = new DateTime($when_atr['endTime']); 
    echo $end->format('g:ia')."</div>" . '<br />' ;  



} 

?> 

的CSS

<style> 

.eventTime { 
    color:#0CF; 
} 

.eventTitle { 
    color:#0FC; 
} 

</style> 

下列資源是有幫助的:

DateDate and TimeExample @Glavić公佈。