Magpie RSS - PHP RSS Parser を使って、
http://www.hyuki.com/yukiwiki/wiki.cgi?MagpieRSS
はてなフォトライフのhatena:imageurl の画像URLを取得するには、上記URLのサンプルコードを
どのように変更すると良いでしょうか。また、5件のみなど記事数を制限する場合も教えてください。
http://www.hatena.ne.jp/info/xmlns
よろしくお願いいたします。
フォトライフのRSSを見た感じ
$link = $item['link'];
で取れませんか
記事数を制限するのは、foreach文だと全件取ってくるので、ここをfor文に書き換えてループ回数を指定すると良いと思います
すみません。
$item[hatena][imageurl]はどうでしょう
$item[hatena][imageurl]でできました!
ありがとうございます。助かりました!
for文についても教えて頂けると助かります。
5件のときはこんな感じでどうでしょうか
for( $i=0; $i<5; $i++){
$item = $rss->items[$i];
(省略)
}
できました!これで考えていた事が実現できそうです!本当にありがとうございました。
ひとつずつ確認しながらしていくと理解しやすいと思います。
まずはてなからrssを取ってきてmagpierssでパースするところまで確認します。
require_once 'magpierss/rss_fetch.inc'; $url = 'http://f.hatena.ne.jp/jkondo/rss'; $rss = fetch_rss($url); var_dump($rss); }
アクセスしてだらだらと表示されたら成功です。
次にitemsの内容について確認します。imageurlはhatena:imageurlとなっているのでitemsの内容の内"hatena"だけ表示してみます。
require_once 'magpierss/rss_fetch.inc'; $url = 'http://f.hatena.ne.jp/jkondo/rss'; $rss = fetch_rss($url); foreach ($rss->items as $item ) { var_dump($item["hatena"]); echo '<br>===============================================<br>'; } }
これからimageurlは$item["hatena"]["imageurl"]で入手できることがわかります。
そのまま書いていってもいいのですがimageurlを配列にして入手する関数にします。
require_once 'magpierss/rss_fetch.inc'; function array_hatena_imageurl($url) { $rss = fetch_rss($url); $images = array(); foreach ($rss->items as $item ) { $images[] = $item["hatena"]["imageurl"]; } return $images; }
使いかたは
array_hatena_imageurl('http://f.hatena.ne.jp/jkondo/rss');
のようになります。
5こだけ必要な場合は
array_slice(array_hatena_imageurl('http://f.hatena.ne.jp/jkondo/rss'), 0, 5);
のようにすることができます。
htmlにするには
$photos = array_slice(array_hatena_imageurl('http://f.hatena.ne.jp/jkondo/rss'), 0, 5); foreach ($photos as $url) echo '<img src="'.$url.'"><br>'.$url.'<br>';
全て処理してから必要無いものを捨てるというのは無駄であるとか、
urlがrssでない場合magpierssがワーニングを発行するようなので運用で使う場合はもっと考察が必要でしょう。
関数にする方法までありがとうございます。マスターできるようかんばります!
.jpg などの拡張子で終わっているURLを取得したいと思っています。
for文に書き換えて試してみます。ありがとうございました。