문제

PHP를 사용하여 RSS 피드에서 iTunes 태그에 액세스해야합니다. 팟 캐스트 피드에 전에 SimplePie를 사용했지만 iTunes 태그를 사용하여 어떻게 얻는 지 잘 모르겠습니다. SimplePie를 사용하여 수행하는 방법이 있습니까? 아니면 더 좋은 방법이 있습니까?


좋아, 나는 간단한 XML을 시도했다.

이 모든 것 (아래 코드)은 작동하는 것 같습니다.

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

이제 iTunes 카테고리를 받아야합니다. 여러 가지 방법으로 표현되는 것 같습니다. 이 경우 다음 XML을받습니다.

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

나는 다음과 같은 것으로 카테고리를 얻을 수있을 것입니다.

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

그러나 그것은 작동하지 않는 것 같습니다.

나는 누가 얻을 사람을 모르는 범주를 나타내는 다른 방법을 보았습니다.

예를 들어:

기술 비즈니스 교육

이것은 미디어 또는 iTunes 또는 둘 다입니까?

당신의 도움을 주셔서 감사합니다. G

도움이 되었습니까?

해결책

이 코드는 나에게 작동합니다.

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

다른 팁

대신 SimpleXML로 속성을 얻으려면 :

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

사용:

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

PHP5가있는 경우 간단한 XML을 사용하면 필요한 정보를 구문 분석하는 데 도움이 될 수 있습니다.

SimplePie는 a get_item_tags() 기능 그것은 당신이 그것들에 액세스 할 수 있도록해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top