第2回 マッシュアップサイトを作ってみる - マッシュアップ講座

ZAPA先生のマッシュアップ講座

Lecutures on PHP

第2回 マッシュアップサイトを作ってみる (その1)

 このエントリーをはてなブックマークに追加

はじめてのマッシュアップサイトを作る

 

ZAPA先生前回までの解説により、「Webサイトのサムネイルを表示する」方法と「ブログのRSSフィードを表示する」方法が理解できたと思います。では、ここまでの知識を元に早速マッシュアップサイトを作ってみましょう。今まで解説した2つの方法だけでも、実は利便性の高いマッシュアップサイトを作ることが可能です。

今回は、「はてな」(*1)で公開されている「はてなウェブサービス」(*2)を利用します。
「はてなブックマーク 最近の人気エントリー」(*3)のRSSフィードhttp://b.hatena.ne.jp/hotentry?mode=rssを元に、人気エントリのタイトル・概要とそのページのサムネイル画像を表示させたマッシュアップサイトを作ります。

特別難しい処理が必要というわけではなく、前回の2つの方法を組み合わせるだけで簡単に実現できます。まずは、RSSフィードをパースするためにURLを指定します。

XML_RSS("http://b.hatena.ne.jp/hotentry?mode=rss");

そして、画像を表示させるために、各記事表示処理を以下のようにします。

echo "<dt>"<a href=\"" . $item['link'] . "\">" . $item['title'] . ""</a>"</dt>\n";
//RSSフィードのリンク先サイトのサムネイル画像を表示
echo ""<dd><img src=\"http://img.simpleapi.net/small/". $item['link'] ."\">"<br>";
echo mb_strimwidth(strip_tags($item['description']), 0, 200, "...", "UTF-8");
echo ""</dd>\n";

ZAPA先生


サイトのURL情報を示す$item['link']をsimpleapiのURLに指定するところがポイントです。 以下のリスト1は、はてなブックマーク 最近の人気エントリのタイトル、概要、サムネイル画像表示をするサンプルプログラムです。

● リスト1 firstmashup.php
   1  <html>
 
  2  <head>
 
  3  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 
  4  <title>はじめてのマッシュアップサイトを作る</title>
 
  5  </head>
 
  6  <body>
 
  7  <?php
   8  
require_once("XML/RSS.php");
 
  9  $rss =& new XML_RSS("http://b.hatena.ne.jp/hotentry?mode=rss");
 
10  $rss->parse();
 
11  echo "<h1>はじめてのマッシュアップサイトを作る</h1>\n";
 
12  echo "<dl>\n";
 
13  foreach ($rss->getItems() as $item) {
 
14   echo "<dt><a href=\"" . $item['link'] . "\">" . $item['title'] . "</a></dt>\n";
 
15   //RSSフィードのリンク先サイトのサムネイル画像を表示
 
16   echo "<dd><img src=\"http://img.simpleapi.net/small/". $item['link'] ."\"><br>";
 
17   echo mb_strimwidth(strip_tags($item['description']), 0, 200, "...", "UTF-8");
 
18   echo "</dd>\n";
 
19  }
 
20  echo "</dl>\n";
 
21  ?>
  22  </body>
  23  </html>

----
*1):http://www.hatena.ne.jp/
*2):http://www.hatena.ne.jp/info/webservices
*3):http://b.hatena.ne.jp/hotentry

  • 1
  • 2

  



Pick Up Q&A

Q
ログファイルの中の空のデータ行を削除したい
 このエントリーをはてなブックマークに追加 
A
ログのデータ個数(列数)が固定で、空のログが"<><><>"だと既知であれば if ($line === "<><><>") { continue; } で読み飛ばしてもいいのでは? ...

>>続きを読む

まずは配列や文字列の扱いから、じっくり勉強して行きましょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)