-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 に答える