人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

RSSを自分のサイトに表示に表示しようとしています。
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関数に入れるプロパティが違う、といことだと思いますが、
どう修正すればいいか、わかりません。

上記サイトを元に、ご指摘いただけると助かります。

●質問者: kohhi
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● うぃんど
●300ポイント ベストアンサー

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; //全部出力する 

kohhiさんのコメント
早速お返事いただきありがとうございました。できました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ