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

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

回答の条件
  • 1人10回まで
  • 登録:
  • 終了:2008/01/08 19:20:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:uguisyu No.1

回答回数10ベストアンサー獲得回数1

ポイント23pt

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

$link = $item['link'];

で取れませんか

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

id:oenoy

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

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

2008/01/01 21:51:34
id:uguisyu No.2

回答回数10ベストアンサー獲得回数1

ポイント23pt

すみません。

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

id:oenoy

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

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

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

2008/01/01 22:54:20
id:uguisyu No.3

回答回数10ベストアンサー獲得回数1

ポイント22pt

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

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

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

(省略)

}

id:oenoy

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

2008/01/01 23:35:18
id:tobeoscontinue No.4

回答回数220ベストアンサー獲得回数59

ポイント22pt

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

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

id:oenoy

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

2008/01/02 01:16:50

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません