Domanda

Devo accedere ai tag iTunes in un feed RSS tramite PHP. Ho usato simplepie prima per i feed di podcast, ma non sono sicuro di come ottenere i tag iTunes che lo utilizzano. C'è un modo per usare simplepie per farlo o c'è un modo migliore?


Okay ho provato Simple XML.

Tutto questo (il codice sotto) sembra funzionare

$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;

Ora ho bisogno di ottenere le categorie di iTunes. Sembra essere rappresentato in diversi modi. In questo caso ottengo il seguente XML:

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

Mi aspetterei di poter ottenere la categoria con qualcosa del genere:

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

Ma questo non sembra funzionare.

Ho visto altri modi per rappresentare la categoria che davvero non so chi scegliere.

Ad esempio:

Tecnologia   Attività commerciale   Istruzione

È una cosa dei media o una cosa di iTunes o entrambi?

Grazie per l'aiuto. G

È stato utile?

Soluzione

Questo codice funziona per me:

//$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
  }
}

Altri suggerimenti

Per ottenere l'attributo con SimpleXML, invece:

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

Usa:

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

Se hai PHP5, l'utilizzo di Simple XML può aiutarti ad analizzare le informazioni che ti servono.

SimplePie ha una get_item_tags () che che dovrebbe consentirti di accedervi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top