将RSS提要放入php数组-可能吗?
我想用php解析来自另一个网站的现有RSS提要,然后将其某些部分存储在mysql数据库中 我非常精通php和mysql,但以前从未使用过rss提要,我应该从哪里开始将RSS提要放入php数组-可能吗?,php,rss,Php,Rss,我想用php解析来自另一个网站的现有RSS提要,然后将其某些部分存储在mysql数据库中 我非常精通php和mysql,但以前从未使用过rss提要,我应该从哪里开始 是否有一个等效于file_get_contents()的方法将rss导入php rss提要是否分解为xml/微数据,或者我是否需要使用正则表达式来获取数据位 干杯 短版:(新) 演示: 长版本:(旧版) load($url); $rss_array=array(); $items=array(); foreach($doc->ge
干杯 短版:(新) 演示:
长版本:(旧版)
load($url);
$rss_array=array();
$items=array();
foreach($doc->getElementsByTagName($tag)作为$node){
foreach($key=>$value的数组){
$items[$value]=$node->getElementsByTagName($value)->item(0)->nodeValue;
}
数组推送($rss\u数组,$items);
}
返回$rss_数组;
}
?>
我相信我也会为你做这件事。如果其他人过去了,一个端到端的非常简单的免费代码示例就在上面
PHP中最好的提要使用者库是RSSClient[1]
[1] 太好了,我试试看。我还发现:?+1用于建议使用DOM解析进行RSS分析,而不是使用库,尽管上次我编写自己的RSS阅读器时有许多不同的格式。哇,你在那里引用了一些奇怪的话。我为你修好了。这是完美的,可以享受,只使用一个功能!(这个例子不起作用,因为rss提要不再存在)再次感谢您,所以请确保您签出SimpleXML,它非常适合处理任何XML,包括rss。
$feed = 'http://stackoverflow.com/opensearch.xml';
$feed_to_array = (array) simplexml_load_file($feed);
//OR $feed_to_array = (array) new SimpleXmlElement( file_get_contents($feed) );
print_r($feed_to_array);
//output
Array
(
[ShortName] => Stack Overflow
[Description] => Search Stack Overflow: Q&A for professional and enthusiast programmers
[InputEncoding] => UTF-8
[Image] => http://sstatic.net/stackoverflow/img/favicon.ico
[Url] => SimpleXMLElement Object
(
[@attributes] => Array
(
[type] => text/html
[method] => get
[template] => http://stackoverflow.com/search?q={searchTerms}
)
)
)
<?php
$rss_tags = array(
'title',
'link',
'guid',
'comments',
'description',
'pubDate',
'category',
);
$rss_item_tag = 'item';
$rss_url = 'http://www.webaddict.info/feeds/news.xml';
$rssfeed = rss_to_array($rss_item_tag, $rss_tags, $rss_url);
echo '<pre>';
print_r($rssfeed);
function rss_to_array($tag, $array, $url) {
$doc = new DOMdocument();
$doc->load($url);
$rss_array = array();
$items = array();
foreach($doc-> getElementsByTagName($tag) AS $node) {
foreach($array AS $key => $value) {
$items[$value] = $node->getElementsByTagName($value)->item(0)->nodeValue;
}
array_push($rss_array, $items);
}
return $rss_array;
}
?>