-1

我想从这个 rss 提要中读取一些数据并将其保存到我的数据库表中。RSS 提要是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() );
}

...我得到了所需的数据,但这次数据不同。

我想存储此提要的链接、描述、图像、发布日期、标题。我怎样才能做到这一点?

我知道如何插入数据库,但如何从 RSS 提要中获取这些数据?拜托,我需要指导。

4

1 回答 1

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()提取它。

于 2011-11-09T09:42:10.137 回答