我这样做并且有效。
<?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];
时,它没有显示下一行。不知道我做错了什么。
答案 0 :(得分: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
然后获取每个描述。
e.g:
$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.
}
希望有所帮助。它未经测试,但应该工作。