• 締切済み

RSSのデータを読み取って更新情報を表示するPHP

Yahooニュースの更新情報を表示するサイトを作りたいと思って とりあえずプログラムを作ってみたのですがうまくいきません。 初心者なのでどこが悪いのか何が足りないのかどうすればいいのか詳しく教えてください <?php //RSSデータの読み込み $rssurl = "http://dailynews.yahoo.co.jp/fc/rss.xml"; $rssdata = simplexml_load_file($rssurl); //変数の初期化 $a= ""; $b= ""; $c= ""; $d= ""; $e= ""; $f= ""; $g= ""; $h= ""; //それぞれの変数に代入 $a= "<li>"; $b= "<a href=\""; $c= link; $d= "\">"; $e= title; $f= "</a>\n"; $g= description; $h= "</li>"; //表示 echo "a"; echo "b"; echo "c"; echo "d"; echo "e"; echo "f"; echo "g"; echo "h"; ?>

みんなの回答

回答No.2

※RSSを取得するようなプログラムを書いたことがないので私の解説で動くかどうかはわかりませんのでご了承ください。 RSSはXMLという形式のファイルで作られています。XMLはHTMLタグのようにタグを使ってデータを扱えるファイルです。HTMLはわかりますね。 そしてRSSで使われているXMLではタグが入れ子構造になっています。たとえば以下のURLのソースを表示してみてください。 http://dailynews.yahoo.co.jp/fc/domestic/rss.xml Yahoo!ニュースのRSSはおそらくRSS2.0ですから<channel>というタグの中に<item>というタグがいくつか入っています。この<item>に記事一つ一つのデータが入っているわけです。<item>のなかに<title>や<link>が入っていますね。これがすなわち記事のタイトルやリンクURLになります。どうやらYahoo!ニュースは記事の<description>を提供していませんね。 さて、あなたのソースでは$rssdata = simplexml_load_file($rssurl); とすることでRSSの中身を$rssdataという変数で扱えるようになりました。ここで一つ目の記事のタイトルを取得したいとなれば、$rssdataのなかの<channel>のなかの一つ目の<item>のなかの<title>にアクセスすればいいわけです。 これをPHPで書くと$rssdata->channel->item[0]->titleとなります。(PHPの添え字は0から始まるので一つ目はitem[0]、二つ目はitem[1]…ですね。)コレを表示すれば一つ目の記事のタイトルが表示されるはずです(たぶん) 一応参考URLに、PHPで簡易的なRSSリーダーのソースを載せているサイトがあったので載せておきます。

参考URL:
http://and1019.blog93.fc2.com/blog-entry-90.html
noname#212058
noname#212058
回答No.1

いや、これは 『足りないところを指摘』 どころか、『できているところ』がまるでありません。あえて言うなら、正しいのは Yahoo の URL くらいでしょうか? まずは、Google 等で "PHP RSSリーダ" で検索して、世のサンプルプログラムを眺めてみることをお勧めします。それで、まるで理解できないようであれば、そもそもの技術力が足りていません。あわてず、基礎から勉強されることをお勧めします。

関連するQ&A

専門家に質問してみよう