プロが教える店舗&オフィスのセキュリティ対策術

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";
?>

A 回答 (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
    • good
    • 0

いや、これは 『足りないところを指摘』 どころか、『できているところ』がまるでありません。

あえて言うなら、正しいのは Yahoo の URL くらいでしょうか?

まずは、Google 等で "PHP RSSリーダ" で検索して、世のサンプルプログラムを眺めてみることをお勧めします。それで、まるで理解できないようであれば、そもそもの技術力が足りていません。あわてず、基礎から勉強されることをお勧めします。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!