各種検索APIのおかげで、サイト内検索を設置することが劇的に簡単になりました。本サイトでもGoogle AJAX Search APIを利用して、サイト内検索を設置しています。 けれども、携帯向けサイトでは、JavaScriptと文字コードの関係で利用していません。
利便性や手間を考えると、PC向けサイトと携帯向けサイトの両方に対応したサイト内検索を設置した方がいいに決まっています。と言う訳で、Google AJAX Search APIを静的に利用し、両方に対応したサイト内検索を作成することにしてみます。
今回はPC向けサイトにのみ対応するシンプルなパターンで、サンプルは下記の通りです。ちなみに「間違いだらけの税務調査
http://tax.ma-bank.net/」では、実際にPC向けページと携帯向けページの両方に対応したサイト内検索を導入して使っています。
Google AJAX Search API Sample
http://ma-bank.com/media/search...
Google AJAX Search API Sample Source
http://ma-bank.com/media/search...
ソース(
http://ma-bank.com/search_sourc... )を見ながら、ポイントを解説します。
- 検索結果のURL: http://ajax.googleapis.com/ajax/services/search/web?v=1.0&rsz=large&q=
- 上記ページの内容を取得: file_get_contents()
- JSONデータを配列化: $json = json_decode()
1.については、
http://code.google.com/intl/ja/... に記されているURLに、「site:」を付け加えることによってサイト内検索結果を表示させます。「rsz=large」は検索結果を最も多く取得するオプションです。
2.についてですが、上記サンプルではcurl_init()を使っていますが、身近なfile_get_contents()を使うことにしました。
3.については、第二引数に「true」を付けて、取得したJSONデータを配列化しています。
次回は、今回のコードをベースに、PC向けサイトと携帯向けサイトの両方に対応したサイト内検索について解説します。
【参考】PC向けサイトと携帯向けサイトの両方に対応したサイト内検索の導入例
間違いだらけの税務調査
http://tax.ma-bank.net/
間違いだらけの税務調査 (携帯向けサイト)
http://tax.ma-bank.net/?mob=1