RSS 提要只是 XML,所以您要做的第一件事就是为您想要使用的语言找到一个 XML 解析器。
PHP内置了SimpleXML,它快速且易于使用。
你会用它来拉出所有这样的链接。
foreach ($xml->channel->item as $key => $item) {
$link = $item->link
}
这很容易理解,我们的根 XML 元素就<channel>
在里面,我们拥有所有的新闻<item>
标签。所以我们遍历这些并拉出每个子<link>
元素。
然后,一旦我做到了那一步,我意识到为你做整件事并不需要我花更多的时间。通过将 http:// 替换为空字符串,我将链接剥离到仅域。然后使用 / 作为分隔符来分解字符串。这样做会将字符串拆分为从斜线之间拉出的块。因此,第一个块是我们的域。
<?php
$url = 'http://pipes.yahoo.com/pipes/pipe.run?_id=e9fdf79f13be013e7c3a2e4a7d0f2900&_render=rss';
$xml = simplexml_load_file($url);
foreach ($xml->channel->item as $key => $item) {
$link = $item->link;
$link = str_replace("http://", "", $link);
$parts = explode('/', $link);
$domain = $parts[0];
print($domain . "<br/>");
}
?>
这段代码给了我一个输出:
www.ft.com
www.dailystar.com.lb
www.ft.com
www.ft.com
www.ft.com
www.ft.com
www.dailystar.com.lb
www.bbc.co.uk
....
然后是 PHP switch 语句为每个链接获得所需结果的情况。像这样:
switch($domain) {
case "www.bbc.co.uk":
// Do BBC stuff
break;
case "www.dailystar.com.lb":
// Do daily star stuff
break;
default:
// Do something for domains that aren't covered above
break;
}
祝你好运!