0

私はこれを行い、それは機能します。

<?php
    function load_file($url) 
    {
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $xml = simplexml_load_string(curl_exec($ch));
        return $xml;
    }

    $feedurl = 'http://www.astrology.com/horoscopes/daily-extended.rss';
    $rss = load_file($feedurl);

    $items = array();
    $count = 0;
    foreach ($rss->channel->item->description as $i => $description) 
    {
        $items[$count++] = $description;
    }
    echo $items[0];
?>

echo $items[1]; 次の行が表示されない場合。私が何を間違えたのかわからない。

4

1 に答える 1

4

xml の例を次に示します。

<channel>
    <item>
        <description>blah</description>
    </item>
    <item>
        <description>blah1</description>
    </item>
    <item>
        <description>blah2</description>
    </item>
    <item>
        <description>blah3</description>
    </item>
</channel>

あなたがそうするとき、あなたは$rss->channel->item->description最初itemのものを手に入れていますdescription

items最初に をループしてから、各説明を取得する必要があります。

例えば:

$descriptions = array();
foreach($rss->channel->item as $item){
    $descriptions[] = $item->description;
    // note I don't need the $count variable... if you just use
    // [] then it auto increments the array count for you.
}

それが役立つことを願っています。テストされていませんが、動作するはずです。

于 2012-09-07T08:34:57.120 に答える