• 締切済み

RSS 2.0をWebページに読み込みたい

Webとブログを両方やっていて、RSSでWebのトップページにブログの更新情報を読み込みたいと思っています。 <a href="link">title</a>(2006.1.15) みたいな感じで。 MagpieRSSを利用してPHPでrdfを読み込む方法は知っているのですが、<rss version="2.0">をMagpieRSSで読み込もうとしてもうまく読み取ってくれません。 Warning: MagpieRSS: Failed to parse RSS file. (not well-formed (invalid token) at line 26, column 2) in /........./rss_fetch.inc on line 237 こんなエラーメッセージが表示されます。 PHPを利用してうまくRSS 2.0を読み取る方法をご存知の方がいらっしゃいましたら、どうかご教示お願いします。

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>サーバのPHPのバージョンが4.4.1 参考URLのDOMXML関数がPHP4.3以降で使えるということなので、DOMXMLを使ってできると思います。 PHP4を試せる環境にないので、PHP4DOMXML用に書き直す必要がありますが、 PHP5でDOMを使う場合は、以下の様な感じで書きます。 <?php #encoding UTF-8 $dom = new domDocument; $dom->load("index.xml"); $root=$dom->documentElement; $items=$root->getElementsByTagName("item"); foreach($items as $item){ $title=mb_convert_encoding($item->getElementsByTagName('title')->item(0)->nodeValue,"SJIS","UTF-8"); $link=$item->getElementsByTagName('link')->item(0)->nodeValue; $date =$item->getElementsByTagName('pubDate')->item(0)->nodeValue; $date = date("Y/m/d",strtotime($date)); print "<a href='$link'>$title</a>$date<br />\n"; } ?>

参考URL:
http://www.php.net/manual/ja/ref.domxml.php
Hexing
質問者

お礼

すみません、自己解決しました。 Movable Typeの管理者ページでindex.xmlの書式パターンを <channel> ~ <item>~</item>    ・    ・ </channel> から <channel> ~ </channel> <item>~</item>    ・    ・ に変更するという荒技でMagpieRSSでの読み取りを可能にしました。 BLUEPIXYさん、お忙しい中ご回答いただいたのに、申し訳ありません。 ですが、お答えの中に今後のヒントになるものを感じましたので、あらためて御礼申し上げます。

すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

RSSは、XML文書だから、今回のような場合、 普通にXML文書として処理してもそれほど難しくないです。 SimpleXML(winPHP5ならそのまま使える)を使うと以下の様な感じでできます。 convert は、必要に応じて・ <?php #encoding UTF-8 $BlogList = simplexml_load_file("http://www.ad-hexing.com/blog/index.xml"); foreach($BlogList->{"channel"}->{"item"} as $item){ $title=mb_convert_encoding($item->{'title'},"SJIS","UTF-8"); $link =$item->{'link'}; print "<a href='$link'>$title</a><br />\n"; } ?>

Hexing
質問者

お礼

BLUEPIXYさん、ご回答ありがとうございます。 でも、SimpleXMLではだめでした…使用しているサーバのPHPのバージョンが4.4.1でしたので。 引き続きアドバイスお待ちしています。

すると、全ての回答が全文表示されます。

関連するQ&A