我想在我的数据库表中读取并保存此rss Feed中的一些数据。该 RSS Feed是http://feeds.feedburner.com/TechCrunch/。
我之前使用过以下代码来阅读另一个RSS提要:
$homepage = file_get_contents('http://rss.cnn.com/rss/edition_technology.rss');
$homepage = preg_replace("/(<\/?)(\w+):([^>]*>)/", "$1$2$3", $homepage);
$xml = simplexml_load_string($homepage,'SimpleXMLElement', LIBXML_NOCDATA);
echo '<pre>';
print_r($xml);
foreach($xml->channel->item as $opt) {
$title = mysql_real_escape_string($opt->title);
$link = mysql_real_escape_string($opt->link);
$des = mysql_real_escape_string($opt->description);
// and others
$sql =
"INSERT INTO store_feed (title, link, description)
VALUES('$title','$link','$des')
ON DUPLICATE KEY UPDATE title = '$title', description = '$des'";
$result = mysql_query($sql) or die( mysql_error() );
}
...我得到了所需的数据,但这次数据不同。
我想存储此Feed的链接,说明,图片,发布日期,标题。我怎么能这样做?
我知道如何插入数据库,但如何从RSS提要中获取此数据?拜托,我需要指导。
答案 0 :(得分:1)
在xml字符串上使用simplexml_load_string()时,将其转换为对象树。
此XML:
<channel>
<item>
<title>Example Title</title>
<description>Example Description</description>
</item>
</channel>
...转换为你可以使用的东西:
$xml->channel->item->title;
$xml->channel->item->description;
因此,您需要查看新RSS源的XML,以了解如何更改代码。它可能看起来像这样:
foreach($xml->channel->item as $opt) {
$title = mysql_real_escape_string($opt->title);
$link = mysql_real_escape_string($opt->link);
$des = mysql_real_escape_string($opt->description);
$publication_date = mysql_real_escape_string($opt->pubDate);
$image = mysql_real_escape_string(strip_tags($opt->description, '<img>'));
}
图片在说明中,因此我们可以使用strip_tags()提取图片。