2016-01-11 5 views
1

J'utilise Simplepie pour accéder à this feed. J'utilise la méthode get_permalink() de SimplePie pour obtenir le lien de chaque élément du flux. Cela fonctionne avec d'autres flux, mais avec celui-ci get_permalink() renvoie l'URL du flux dans son ensemble, plutôt que l'URL d'un élément particulier.Simplepie get_permalink renvoie le lien feed à la place de l'élément link

code:

$feed = new Rss_lib(); 
$feed->set_feed_url($feed_array); 
$success = $feed->init(); 
$feed->handle_content_type(); 

foreach($feed->get_items() as $item) 
{ 
    $item_arr = array(
     'permalink' => $item->get_permalink(), 
     'title'  => $item->get_title(), 
     'description' => $item->get_description(), 
     'date'  => $item->get_date() 
    ); 
    $return[] = $item_arr; 
} 

Je veux recevoir le permalien de l'élément plutôt que l'URL du flux.

Répondre

0

Il semble que SimplePie ait un bug concernant ce flux. Pour obtenir le lien pour l'article, vous avez juste besoin de récupérer tous les liens, puis choisissez celui que vous voulez. Pour le flux de votre question, le deuxième lien est le lien que vous recherchez (en utilisant ma version de SimplePie de toute façon, différentes versions peuvent l'analyser différemment).

$links = $item->get_links(); 
$link = $links[1]; 
+0

Merci. Le problème est que j'écris une méthode qui pourrait potentiellement prendre plusieurs flux différents, donc je ne peux pas vraiment faire des exceptions pour un flux particulier. – GluePear