Question

Je dois accéder aux balises iTunes dans un flux RSS à l'aide de PHP. J'ai déjà utilisé simplepie pour les flux de podcast, mais je ne sais pas comment utiliser les balises iTunes. Existe-t-il un moyen d'utiliser simplepie pour le faire ou existe-t-il un meilleur moyen?

D'accord, j'ai essayé le XML simple.

Tout cela (le code ci-dessous) semble fonctionner

$feed = simplexml_load_file('http://sbhosting.com/feed/');
$channel = $feed->channel;
$channel_itunes = $channel->children('http://www.itunes.com/dtds/podcast-1.0.dtd');
$summary = $channel_itunes->summary;
$subtitle = $channel_itunes->subtitle;
$category = $channel_itunes->category;
$owner = $channel_itunes->owner->name;

Maintenant, je dois obtenir les catégories iTunes. Ils semblent être représentés de plusieurs manières. Dans ce cas, je reçois le code XML suivant:

<itunes:category text="Technology"/>
<itunes:category text="Technology">
  <itunes:category text="Software How-To"/>
</itunes:category> 

Je m'attendrais à pouvoir obtenir la catégorie avec quelque chose comme ceci:

$category_text = $channel_itunes->category['text'];

Mais cela ne semble pas fonctionner.

J'ai déjà vu d'autres moyens de représenter cette catégorie que je ne sais vraiment pas qui obtenir.

Par exemple:

Technologie   Affaires   Education

S'agit-il d'un média, d'un iTunes ou des deux?

Merci pour votre aide. G

Était-ce utile?

La solution

Ce code fonctionne pour moi:

//$pie is a SimplePie object
$iTunesCategories=$pie->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES,'category');
if ($iTunesCategories) {
  foreach ($iTunesCategories as $iTunesCategory) {
    $category=$iTunesCategory['attribs']['']['text'];
    $subcat=$iTunesCategory['child']["http://www.itunes.com/dtds/podcast-1.0.dtd"]['category'][0]['attribs']['']['text'];
    if ($subcat) {
      $category.=":$subcat";
    }
    //do something with $category
  }
}

Autres conseils

Pour obtenir l'attribut avec SimpleXML, utilisez plutôt:

$category_text = $channel_itunes->category['text'];

Utiliser:

$category_text = $channel_itunes->category->attributes()->text;

Si vous avez PHP5, utiliser Simple XML peut vous aider à analyser les informations dont vous avez besoin.

SimplePie a une get_item_tags () qui devrait vous laisser y accéder.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top