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

PHP初心者です。
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

よろしくお願いいたします。

●質問者: oenoy
●カテゴリ:インターネット ウェブ制作
✍キーワード:Hatena PHP RSS URL はてなフォトライフ
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● uguisyu
●23ポイント

フォトライフのRSSを見た感じ

$link = $item['link'];

で取れませんか

記事数を制限するのは、foreach文だと全件取ってくるので、ここをfor文に書き換えてループ回数を指定すると良いと思います

◎質問者からの返答

.jpg などの拡張子で終わっているURLを取得したいと思っています。

for文に書き換えて試してみます。ありがとうございました。


2 ● uguisyu
●23ポイント

すみません。

$item[hatena][imageurl]はどうでしょう

◎質問者からの返答

$item[hatena][imageurl]でできました!

ありがとうございます。助かりました!

for文についても教えて頂けると助かります。


3 ● uguisyu
●22ポイント

5件のときはこんな感じでどうでしょうか

for( $i=0; $i<5; $i++){

$item = $rss->items[$i];

(省略)

}

◎質問者からの返答

できました!これで考えていた事が実現できそうです!本当にありがとうございました。


4 ● tobeoscontinue
●22ポイント

ひとつずつ確認しながらしていくと理解しやすいと思います。

まずはてなから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がワーニングを発行するようなので運用で使う場合はもっと考察が必要でしょう。

◎質問者からの返答

関数にする方法までありがとうございます。マスターできるようかんばります!

関連質問


●質問をもっと探す●



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