运行PHP脚本以检查rss feed是否已更改

时间:2012-11-20 13:10:12

标签: php cron

我希望创建一个PHP脚本,根据特定术语检查网站RSS Feed以进行更改,然后通过电子邮件向我发送通知。

我知道如何设置电子邮件系统并设置cron作业,但我不知道如何让PHP在RSS源上搜索术语:(

实施例: 我将脚本设置为BBC新闻(http://feeds.bbci.co.uk/news/rss.xml),以检查“David Cameron”一词是否出现在前3个Feed中的任何一个的标题或主要文本中,如果是,则向我发送通知,如果有的话

我不是要求任何人给我写一个脚本但是如果有人知道任何教程来设置RSS搜索它会很棒,也不需要是所有的歌唱脚本,它只适合我

1 个答案:

答案 0 :(得分:4)

RSS只是普通的XML,可以使用DOM轻松解析。

$doc = new DOMDocument();
$doc->load('http://feeds.bbci.co.uk/news/rss.xml');

然后用xPath

解析它
$xpath = new DOMXPath($doc);
foreach( $xpath->query( '//item') as $node){
    // $node is DOMElement
}

拥有项目节点后,您可以使用GetElementesByTagName()

轻松获得标题
$titleNodes = $node->GetElementsByTagName('title');
if( $titleNodes->length < 1){
   // Error
}
$title = $titleNodes->item(0)->nodeValue;

或者,如果您可以指望始终包含<title>的有效RSS:

$title = $node->GetElementsByTagName('title')->item(0)->nodeValue;