使用PHP解析iTunes RSS Atom?

问题描述 投票:0回答:2

[尝试使用PHP脚本解析iTunes Atom提要。如果您访问iTunes RSS Generator,则可以生成如下所示的Atom供稿:https://rss.itunes.apple.com/api/v1/id/apple-music/new-releases/all/10/explicit.rss

如何获得这样的数据:

  1. 标题1A类B类日期

  2. 标题2A类B类日期

  3. 标题3A类B类日期

php rss itunes
2个回答
0
投票

您可以使用SimpleXML轻松而轻松地解析RSS feed,例如:

<?php

// Load the feed using SimpleXML
$xml = simplexml_load_file('https://rss.itunes.apple.com/api/v1/id/apple-music/new-releases/all/10/explicit.rss');

foreach ($xml->channel->item as $item) {
    // Work with each item within the RSS feed
    print_r($item);

    // $item->title
    // $item->category
    // $item->link
    // $item->guid
    // $item->description
    // $item->pubDate
}

示例控制台输出:

SimpleXMLElement Object
(
    [title] => Lexicon - Isyana Sarasvati
    [category] => Array
        (
            [0] => Isyana Sarasvati
            [1] => album
            [2] => Pop
            [3] => Music
        )

    [link] => https://music.apple.com/id/album/lexicon/1487794173?app=music
    [guid] => https://music.apple.com/id/album/lexicon/1487794173?app=music
    [description] => Lexicon
    [pubDate] => Fri, 29 Nov 2019 00:00:00 +0000
)
SimpleXMLElement Object
(
    [title] => Menari Dengan Bayangan - Hindia
    [category] => Array
        (
            [0] => Hindia
            [1] => album
            [2] => Alternative
            [3] => Music
        )

    [link] => https://music.apple.com/id/album/menari-dengan-bayangan/1481804269?app=music
    [guid] => https://music.apple.com/id/album/menari-dengan-bayangan/1481804269?app=music
    [description] => Menari Dengan Bayangan
    [pubDate] => Fri, 29 Nov 2019 00:00:00 +0000
)
SimpleXMLElement Object
(
    [title] => fine today (Nanti Kita Cerita Tentang Hari Ini - Original Motion Picture Soundtrack) - Single - Ardhito Pramono
    [category] => Array
        (
            [0] => Ardhito Pramono
            [1] => album
            [2] => Pop
            [3] => Music
        )

    [link] => https://music.apple.com/id/album/fine-today-nanti-kita-cerita-tentang-hari-ini-original/1489298116?app=music
    [guid] => https://music.apple.com/id/album/fine-today-nanti-kita-cerita-tentang-hari-ini-original/1489298116?app=music
    [description] => fine today (Nanti Kita Cerita Tentang Hari Ini - Original Motion Picture Soundtrack) - Single
    [pubDate] => Fri, 6 Dec 2019 00:00:00 +0000
)
SimpleXMLElement Object
(
    [title] => Aku Lengkap Denganmu - Single - StarBe
    [category] => Array
        (
            [0] => StarBe
            [1] => album
            [2] => Indo Pop
            [3] => Music
            [4] => Pop
        )

    [link] => https://music.apple.com/id/album/aku-lengkap-denganmu-single/1488907206?app=music
    [guid] => https://music.apple.com/id/album/aku-lengkap-denganmu-single/1488907206?app=music
    [description] => Aku Lengkap Denganmu - Single
    [pubDate] => Fri, 6 Dec 2019 00:00:00 +0000
)
....

0
投票

Aran击败了我,但自从我写下以来,就将其发布在这里。

[如果您要避免为每个节点处理SimpleXMLElement objects

$xml = simplexml_load_file('https://rss.itunes.apple.com/api/v1/id/apple-music/new-releases/all/10/explicit.rss');

$items = [];
foreach($xml->channel->item as $item) {
    $category = json_decode(json_encode($item->category), true);

    array_push($items, (object) [
        'title' => (string) $item->title,
        'link'  => (string) $item->link,
        'guid'  => (string) $item->guid,
        'desc'  => (string) $item->description,
        'date'  => (string) $item->pubDate,
        'category' => array_filter($category, 'is_int', ARRAY_FILTER_USE_KEY),
    ]);
}

var_dump($items[1]->category[2]);
# output: string(11) "Alternative"
© www.soinside.com 2019 - 2024. All rights reserved.