PHPでマッシュアップするための準備

(1/5)
最近、Yahoo!Google の検索エンジン、Amazon楽天市場の商品データベースといったものを、自分のホームページから利用できるようになってきた。従来のように GET/POST メソッドを使ってパラメータを渡して Yahoo! や Google のページとして表示するのではなく、見た目は自分のサイトデザインのまま、中身のデータだけを Yahoo! や Google から受け取れるようになったのである。
こうした仕組みを WebAPI、これを利用することを マッシュアップ(MushUp) と呼んでいる。
space
WebAPI は無料で利用できるものが多い。また、WebAPI を公開する企業としても、無償でマッシュアップして顧客を呼び込んでくれるパワーユーザーの存在はありがたい。今後、WebAPI の公開が、ますます盛んになるだろう。
というわけで、このコーナーは「ぱふぅ家のホームページ」100 万回アクセス記念として、PHPWeb API を利用し、マッシュアップしていく方法を説明していくことにする。
space
なお、後で述べる XML 処理の違いから、「PHP5 対応」 と明示していないプログラムはバージョン 4.x でしか動作しない。順次、PHP5 対応を進めているので、少しお待ちいただきたい。

WebAPI の仕組み

なお、後で述べる XML 処理の違いから、「PHP5 対応」 と明示していないプログラムはバージョン 4.x でしか動作しない。順次、PHP5 対応を進めているので、少しお待ちいただきたい。
SVG-W3C ※上図を見るにはSVGビューワが必要です。
Corel SVG Viewer
上の図は、WebAPI の仕組みを表したものである。
クライアント(ブラウザ)から見えるのは、1 つのドメイン(サーバサイド)だけである。サーバサイドは、PHP などのプログラムを介して、Yahoo! や Amazon の WebAPI を利用する。したがって、クライアントからどんな WebAPI を利用しているのかはわからない。ここまでのデータ交換は、すべて http通信で処理される。
さらに、WebAPI の裏側にはデータベースなどのシステムがあるが、クライアントから WebAPI が見えないのと同様、サーバサイドからそれらのシステムを見ることはできない。

XML のツボ

WebAPI を利用するためには、まず、XML に関する知識が必要になる。Google や Yahoo! のような WebAPI から戻ってくるデータ形式が XML だからだ。XML についてご存知の方は、この項を読み飛ばしていただいて構わない。XML を扱うのは初めてという方は、とりあえず、次の 3 点を押さえておいてほしい。
space
1.HTML のようなタグ構造をしているテキスト
XML は、<hoge>...</hoge> というタグ構造をなしているテキストデータである。
ただ、HTML と異なり、タグの名前は自由に設定できる(厳密には定義が必要)。

2.UTF-8 が標準
XML ファイルの冒頭行は
  <?xml version="1.0" encoding="utf-8"?>
と書かれていることが多い。つまり、標準コードは UTF-8 である。
ShiftJIS や EUC-JP で書くこともできるが、PHP が用意している XML 処理関数の中には UTF-8 でないと正常に処理できないものがあるため、ここではすべて UTF-8 として扱うことにする。

3.PHP では XML を扱う方法が複数ある
PHP バージョン 4 と 5 では、同じ DOM(Document Object Model)でも互換性がほとんどない。そこで、
  • PHP4 ⇒ DOM
  • PHP5 ⇒ SimpleXML
を利用することにする。SimpleXML は PHP バージョン 5 で導入された関数群で、DOM や XML パーサ(SAX)に比べて短いコードで XML 処理を行うことができるのが特長だ。
この項つづく
header