Frage

Ich muss Zugriff auf die iTunes-Tags in einem RSS-Feed erhalten PHP. Ich habe simplepie verwendet, bevor sie für Podcast-Feeds, aber ich bin nicht sicher, wie die iTunes-Tags erhalten Sie es. Gibt es eine Möglichkeit simplepie zu verwenden, es zu tun, oder gibt es einen besseren Weg?


Okay, ich versuchte Einfache XML.

All dies (der Code unten) scheint zu funktionieren

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

Jetzt muss ich die itunes Kategorien bekommen. Das scheint auf verschiedene Weise dargestellt werden. In diesem Fall habe ich die Folge XML:

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

Ich würde erwarten, dass die Kategorie mit so etwas zu bekommen:

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

Aber das scheint nicht zu funktionieren.

Ich habe andere Möglichkeiten gesehen, die Kategorie zu repräsentieren, die ich nicht wirklich wissen, wer zu erhalten.

Zum Beispiel:

Technologie   Geschäft   Bildung

Ist das ein Medium Sache oder eine itunes Sache oder beides?

Danke für Ihre Hilfe. G

War es hilfreich?

Lösung

Dieser Code funktioniert für mich:

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

Andere Tipps

Um das Attribut mit SimpleXML zu erhalten, statt:

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

Verwendung:

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

Wenn Sie PHP5 haben, einfach unter Verwendung von XML in Parsen der Informationen helfen können, die Sie benötigen.

SimplePie hat eine get_item_tags() Funktion , die lassen sollen Sie darauf zugreifen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top