Accès PHP aux balises iTunes dans un flux RSS

j'ai besoin d'accéder aux balises iTunes dans un flux RSS en utilisant PHP. J'ai déjà utilisé simplepie pour les flux podcast, mais je ne suis pas sûr de savoir comment obtenir les tags iTunes en l'utilisant. Est-il possible d'utiliser simplepie de le faire ou est-il un meilleur moyen?


OK 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. Il semble être représenté de plusieurs façons. Dans ce cas, J'obtiens le 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 vu d'autres façons de représenter la catégorie que je ne sais vraiment pas qui obtenir.

par exemple:

de la Technologie Affaires L'éducation

est-ce un truc des médias ou un truc d'itunes ou les deux?

Merci Pour Votre Aide. G

1
demandé sur gbennett 2008-10-05 04:16:51

4 réponses

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
  }
}
0
répondu Doug Kaye 2008-12-20 04:45:29

si vous avez PHP5, L'utilisation de XML Simple peut aider à analyser l'information dont vous avez besoin.

0
répondu Ólafur Waage 2008-10-05 00:19:54

SimplePie a une get_item_tags() fonction qui devrait vous permettre d'y accéder.

0
répondu ceejayoz 2008-10-05 02:33:17

pour obtenir L'attribut avec SimpleXML, à la place:

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

utiliser:

$category_text = $channel_itunes->category->attributes()->text;
0
répondu Firegab 2018-07-31 07:47:00