http://1811way.com/work008/source20120728.txt
を参照してください。
3行目
$rssdata = simplexml_load_file("http://ideblog.info/feed");
を
$rssdata = simplexml_load_file("http://blogs.yomiuri.co.jp/olympic2012/atom.xml");
に換えるとエラーになります。
エラーメッセージ(同じようなメッセージが全部で9件)
Notice: Trying to get property of non-object in C:\Tools\htdocs\phpstudy\rss01.php on line 13
simplexml_load_file関数に入れるプロパティが違う、といことだと思いますが、
どう修正すればいいか、わかりません。
上記サイトを元に、ご指摘いただけると助かります。
rssとatomは構造に違いがあるため、読み取り方法も少し変わります。
下記、元のコードをそのまま使う形でatomにも対応させた例です。
<?php //ブログなどのRSS FEEDのURL設定 $rssdata = simplexml_load_file("http://blogs.yomiuri.co.jp/olympic2012/atom.xml"); // 読み込み件数を設定 $num_of_data = 3; //出力内容を空っぽに初期化 $outdata = ""; if ($rssdata->getName() == 'feed') { // atom の場合の処理 $children = $rssdata->children('http://www.w3.org/2005/Atom'); //設定した読み込み件数分だけ取得を繰り返す for ($i=0; $i<$num_of_data; $i++){ $myEntry = $children->entry[$i]; //記事1個取得 $myDate = $myEntry->published; //日付取得 $myTitle = $myEntry->title; //タイトル取得 //リンクURL取得 $myAttr = $myEntry->{'link'}->attributes(); $myLink = $myAttr['href']; //出力内容にタイトル(リンク付)を入れる $outdata .= '<h3 class="posttitle"><a href="' . $myLink . '">' . $myTitle . '</a></h3>' . "\n"; //出力内容に日付けを入れる $outdata .= '<p class="postdate">' . $myDate . '</p>' . "\n"; } } else { // rss の場合の処理 //設定した読み込み件数分だけ取得を繰り返す for ($i=0; $i<$num_of_data; $i++){ $myEntry = $rssdata->channel->item[$i]; //記事1個取得 $myDate = $myEntry->pubDate; //日付取得 $myTitle = $myEntry->title; //タイトル取得 $myLink = $myEntry->link; //リンクURL取得 //出力内容にタイトル(リンク付)を入れる $outdata .= '<h3 class="posttitle"><a href="' . $myLink . '">' . $myTitle . '</a></h3>' . "\n"; //出力内容に日付けを入れる $outdata .= '<p class="postdate">' . $myDate . '</p>' . "\n"; } } echo $outdata; //全部出力する
早速お返事いただきありがとうございました。できました。
2012/07/28 22:40:54